Code:
Private Sub cmdDup_Click()
On Error GoTo ErrHandler
Dim db As DAO.Database
Dim sql As String
Dim Revision As String
Dim newQuoteId As Variant
Revision = IncrementLetter2(Nz(Me.Revision, ""))
'copy the quote
sql = ""
sql = sql & "INSERT INTO tblProvisionalQuotes ( QuoteNo, Revision, Project, RaisedBYID, QuoteValue, MonthExpected, StatsuID, SourceID, Specifier, Notes, SalesEngineerId, Delivery, ValidTo, OrderedBy, OrderDate, OrderNo, OrderValue, DateCreated, FollowUpDate, AreaID ) " & vbCrLf
sql = sql & "SELECT tblProvisionalQuotes.QuoteNo, """ & Revision & """, tblProvisionalQuotes.Project, tblProvisionalQuotes.RaisedBYID, tblProvisionalQuotes.QuoteValue, tblProvisionalQuotes.MonthExpected, tblProvisionalQuotes.StatsuID, tblProvisionalQuotes.SourceID, tblProvisionalQuotes.Specifier, tblProvisionalQuotes.Notes, tblProvisionalQuotes.SalesEngineerId, tblProvisionalQuotes.Delivery, tblProvisionalQuotes.ValidTo, tblProvisionalQuotes.OrderedBy, tblProvisionalQuotes.OrderDate, tblProvisionalQuotes.OrderNo, tblProvisionalQuotes.OrderValue, tblProvisionalQuotes.DateCreated, tblProvisionalQuotes.FollowUpDate, tblProvisionalQuotes.AreaID " & vbCrLf
sql = sql & "FROM tblProvisionalQuotes " & vbCrLf
sql = sql & "WHERE (((tblProvisionalQuotes.ProvisionalQuoteId)=" & Me.ProvisionalQuoteID & "));"
Debug.Print sql
Set db = CurrentDb
db.Execute sql, dbFailOnError
'get the ID of the new revision
newQuoteId = DLookup("ProvisionalQuoteId", "tblProvisionalQuotes", "QuoteNo = " & CLng(Me.QuoteNo) & " AND Revision = '" & Revision & "'")
'make sure the first copy worked
If IsNull(newQuoteId) Then Err.Raise 1001, , "Coping the quote failed"
'copy the details (no need for a loop)
sql = ""
sql = sql & "INSERT INTO tblQuoteDetails ( ProvisionalQuoteID, TypeID, ElementID, CodeID, Code, Description, Qty, DiscountID, Tax, Delivery, SalesPrice, LineTotal, Ref ) " & vbCrLf
sql = sql & "SELECT " & newQuoteId & ", tblQuoteDetails.TypeID, tblQuoteDetails.ElementID, tblQuoteDetails.CodeID, tblQuoteDetails.Code, tblQuoteDetails.Description, tblQuoteDetails.Qty, tblQuoteDetails.DiscountID, tblQuoteDetails.Tax, tblQuoteDetails.Delivery, tblQuoteDetails.SalesPrice, tblQuoteDetails.LineTotal, tblQuoteDetails.Ref " & vbCrLf
sql = sql & "FROM tblQuoteDetails " & vbCrLf
sql = sql & "WHERE (((ProvisionalQuoteID)=" & Me.ProvisionalQuoteID & "));"
Debug.Print sql
db.Execute sql, dbFailOnError
ExitHandler:
Set db = Nothing
Exit Sub
ErrHandler:
MsgBox Err.Description, , "Error #" & Err.Number
Resume ExitHandler
End Sub