Here is the code. Turns out that VB was not actually needed, but I put the three SQL queries in VB so you could just cut and past one thing. Any way, here you go. Hope it works for you.
ChaZ
Function Makeit()
DoCmd.SetWarnings False
DoCmd.RunSQL "SELECT DISTINCT tblCustOrders.AccountID, tblCustOrders.Name, tblCustOrders.State, tblCustOrders.[E-Mail], tblCustOrders.Homephone, tblCustOrders.WorkPhone, tblCustOrders.Initial_Amt_Owed, Space(100) AS [String] INTO Temp_Hold FROM tblCustOrders;"
DoCmd.RunSQL "UPDATE tblCustOrders INNER JOIN Temp_Hold ON tblCustOrders.AccountID = Temp_Hold.AccountID SET Temp_Hold.[String] = Trim([string]) & ([ordername] & Space(15-Len([ordername]))) & Right('0000000000' & [orderamount],10);"
DoCmd.RunSQL "SELECT Temp_Hold.AccountID, Temp_Hold.Name, Temp_Hold.State, Temp_Hold.[E-Mail], Temp_Hold.Homephone, Temp_Hold.WorkPhone, Temp_Hold.Initial_Amt_Owed, Mid([string],1,15) AS OrderName1, Val(Mid([string],16,10)) AS OrderAmount1, Mid([string],26,15) AS OrderName2, Val(Mid([string],41,10)) AS OrderAmount2, Mid([string],51,15) AS OrderName3, Val(Mid([string],66,10)) AS OrderAmount3, Mid([string],76,15) AS OrderName4, Val(Mid([string],91,10)) AS OrderAmount4, Mid([string],101,15) AS OrderName5, Val(Mid([string],116,10)) AS OrderAmount5, Mid([string],126,15) AS OrderName6, Val(Mid([string],141,10)) AS OrderAmount6, Mid([string],151,15) AS OrderName7, Val(Mid([string],166,10)) AS OrderAmount7, Mid([string],176,15) AS OrderName8, Val(Mid([string],191,10)) AS OrderAmount8, Mid([string],201,15) AS OrderName9, Val(Mid([string],216,10)) AS OrderAmount9, Mid([string],226,15) AS OrderName10, Val(Mid([string],241,10)) AS OrderAmount10 INTO tblCustOrdersTmp FROM Temp_Hold;"
DoCmd.SetWarnings True
End Function
Ascii dumb question, get a dumb Ansi