Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313

    [vba/access/sqlServer] - dbseechanges necessario se id con identiy

    ciao,

    questa funzione setta la data (passata come argomento) nella tabella link sqlServer (che puo essere dbo_prepay_trx o dbo_postpay_trx).
    codice:
    Private Function setEnctsDate(enctsDate As String)
    
        Dim rs As ADODB.Recordset
        'Set rs = Me.sfrmMain.Form.Recordset
        
        Set rs = New ADODB.Recordset
        rs.Open Me.currentQuery, CurrentProject.Connection, dbOpenDynaset, adLockOptimistic, dbSeeChanges
        
        
        If Not rs.EOF Then rs.MoveFirst
        While Not rs.EOF
            If (fraTblMode.value = 1) Then
                q = " UPDATE dbo_ccc_prepay_trx SET posting_encts_date = '" & enctsDate & "'"
                q = q & " WHERE ccc_prepay_trx_id = " & rs!ccc_prepay_trx_id
            Else
                q = " UPDATE dbo_ccc_postpay_trx SET posting_encts_date = '" & enctsDate & "'"
                q = q & " WHERE ccc_postpay_trx_id = " & rs!ccc_postpay_trx_id
            End If
            
            CurrentDb.Execute (q)
        
            rs.MoveNext
        Wend
       
        'Me.sfrmMain.Form.Requery
        
        ' Set the relative textbox
        MsgBox "Update done"
        
    End Function
    i campi ccc_prepay_trx_id e ccc_postpay_trx_id sono quelli autoincrement (identity=yes).

    ecco l'errore che mi da:
    Run-time error '3622':
    You must use the dbSeechanges option with openRecordset when accessing a
    SQL Server table that has an IDENTITY column.


    come diavolo posso risolvere???
    alcool: la causa e la soluzione di tutti i problemi

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prova a non usare la Execute della Connection ma un Recordset e la Open con il parametro indicato ...

  3. #3
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    Originariamente inviato da oregon
    Prova a non usare la Execute della Connection ma un Recordset e la Open con il parametro indicato ...
    grazie per la risposta..mi puoi fare un esempio pratico?
    alcool: la causa e la soluzione di tutti i problemi

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scusa ... ma hai creato e usato rs (recordset) ... quindi ti dovrebbe essere chiaro anche senza esempio pratico ...

    Crea un altro oggetto recordset e fai la Open con la frase contenuta in q ...

  5. #5
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    piu che altro non so se ho ben capito cosa intendevi. cmq ecco cosa ho fatto:
    codice:
    Private Function setEnctsDate(enctsDate As String)
    
        Dim rs As ADODB.Recordset
        Dim rs2 As ADODB.Recordset
        
        Set rs = New ADODB.Recordset
        Set rs2 = New ADODB.Recordset
        
        rs.Open Me.currentQuery, CurrentProject.Connection, dbOpenDynaset, adLockOptimistic, dbSeeChanges
        
        If Not rs.EOF Then rs.MoveFirst
        While Not rs.EOF
        
            If (fraTblMode.value = 1) Then
                q = " UPDATE dbo_ccc_prepay_trx SET posting_encts_date = '" & enctsDate & "'"
                q = q & " WHERE ccc_prepay_trx_id = " & rs!ccc_prepay_trx_id
            Else
                q = " UPDATE dbo_ccc_postpay_trx SET posting_encts_date = '" & enctsDate & "'"
                q = q & " WHERE ccc_postpay_trx_id = " & rs!ccc_postpay_trx_id
            End If
            
            rs2.Open q, CurrentProject.Connection, dbOpenDynaset, adLockOptimistic, dbSeeChanges
            rs2.Close
        
            rs.MoveNext
        Wend
       
        Me.sfrmMain.Form.Requery
        
        ' Set the relative textbox
        MsgBox "Update done"
        
    End Function
    ma da errore: "cannot open active query'
    alcool: la causa e la soluzione di tutti i problemi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.