Record met subrecords kopiëren naar nieuw - "Er zijn te weinig parameters."

Status
Niet open voor verdere reacties.

LodewijkG

Gebruiker
Lid geworden
6 dec 2012
Berichten
98
Beste Helpmij leden, OctaFish,

Ik probeer in mijn huidige database een record te kopiëren met de volgende code:

Code:
Private Sub cmdCopyToNew_Click()
'On Error GoTo Err_Handler
    'Purpose:   Duplicate the main form record and related records in the subform.
    Dim strSQL As String    'SQL statement.
    Dim lngID As Long       'Primary key value of the new record.
    
    'Save any edits first
    If Me.Dirty Then
        Me.Dirty = False
    End If
    
    'Make sure there is a record to duplicate.
    If Me.NewRecord Then
        MsgBox "Select the record to duplicate."
    Else
        'Duplicate the main record: add to form's clone.
        With Me.RecordsetClone
            .AddNew
                !Salesman = Me.cboSalesRep
                !CompanyId = Me.cboCompany
                !PaymentModalityId = Me.cboCredit
                !FreightCostId = Me.cboFreight
                !RateId = Me.cboCurrency
                !CalcContainerVolume = txtMaxContainer
            'etc for other
            .Update
            
            'Save the primary key value, to use as the foreign key for the related records.
            .Bookmark = .LastModified
            lngID = !OrderId
                        
            'Duplicate the related records: append query.
           If Me.sfmOrder.Form.RecordsetClone.RecordCount > 0 Then
                strSQL = "INSERT INTO [qryProductOrder] ( OrderId, ProductId, LabelId, PackagingId, PriceId, Quantity, AdditionalCost, SalesPrice ) " & _
                    "SELECT " & lngID & " As NewID, ProductId, LabelId, PackagingId, PriceId, Quantity, AdditionalCost, SalesPrice " & _
                    "FROM [qryProductOrder] WHERE OrderId = " & OrderId & ";"
                DBEngine(0)(0).Execute strSQL, dbFailOnError
            Else
                MsgBox "Main record duplicated, but there were no related records."
            End If
            
            'Display the new duplicate.
            Me.Bookmark = .LastModified
        End With
    End If
Exit_Handler:
    Exit Sub
Err_Handler:
    MsgBox "Error " & Err.Number & " - " & Err.Description, , "Command207_Click"
    Resume Exit_Handler
End Sub

Voorheen heeft deze gewerkt maar nu dus niet meer. Ik krijg de error "Fout 3061 tijdens uitvoering: Er zijn te weinig parameters. Het verwachte aantal is 1." en verwijst naar
Code:
DBEngine(0)(0).Execute strSQL, dbFailOnError
Bij de fout opsporing, ik kan echter zelf niet meer vinden waar nu de fout zou moeten zitten. De velden die gekopieerd zouden moeten worden kloppen.
 
Je kan de SQL eens afvangen met een Inputbox en kijken of de query wel klopt.
Code:
Dim tmp
tmp=InputBox("","",strSQL)
 
Hey OctaFish,

Wederom bedankt!

Ik ben bang dat ik er niet uit kom, ik heb geprobeerd het SQL
Code:
Dim strSQL As String    'SQL statement.

Weg te halen en daar bovenstaand voor in te vullen.

Wellicht dat je me nog wat verder de goede richting in kunt sturen?

Thanks!
Lodewijk
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan