Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 3 su 3

Duplicazione record in Public Sub

  1. #1
    AStart2015 non è in linea Novello
    Buongiorno a tutti.
    In Access 2016, su alcune Maschere continue, ho necessità di duplicare dei record definiamoli di ‘base’.
    Attività che ho fino ad oggi gestito tramite il codice sotto riportato, perfettamente funzionante.

    Public Sub DuplicaRek(ByRef frm As Form, ctl As Control)
    'Routine neutra di Duplicazione Record
    'frm - Form origine del trattamento
    'ctl - Ctl PrimaryKey della Form in trattamento
    'Esempio di utilizzo: DuplicaRek(Me, IDMov)
    On Error GoTo Err_Handler
    
          With frm.RecordsetClone
             .AddNew
    '--Inizio RecordSet PNota--------------------
                !IDAzienda = frm.IDAzienda
                !IDAnno    = frm.IDAnno
                !IDMese    = frm.IDMese
                !bSel      = frm.bSel
                !FlagSca   = frm.FlagSca
    		Etc..
    '--Fine RecordSet PNota----------------------
             .Update
                frm.Bookmark = .LastModified 'Mi posiziono sul NewRecord duplicato e Visualizzo il risultato
                MsgBox "Duplicazione record avvenuta con successo!", vbInformation, frm.Name & _
                " - Duplicazione Record " & !IDMov & " --> " & ctl.Value
          End With
    
    Exit_Handler:
     Exit Sub
    
    Err_Handler:
     MsgBox "Errore " & Err.Number & " - " & Err.Description, "DuplicaRek"
     Resume Exit_Handler
    End Sub
    
    Adesso vorrei migliorare il codice sopra riportato, rendendo la Sub indipendente dal RecordSet, attraverso un ciclo sui campi della Tabella, e l’assegnazione del valore. A tal fine vorrei mettere a punto questo ulteriore Codice in fase di WiP, che riporto.

    Public Sub DuplicaRek1(ByRef frm As Form, ctl As Control)
    'Routine neutra di Duplicazione Record - WiP
    'frm - Form origine del trattamento
    'ctl - Ctl PrimaryKey della Form in trattamento
    'Esempio di utilizzo: DuplicaRek1(Me, IDMov)
    On Error GoTo Err_Handler
    Dim fld As Field
    
    Debug.Print frm.Name, ctl.Name, ctl.Value
       
    frm.RecordsetClone.Bookmark = frm.Bookmark
          
          .AddNew
             For Each fld In frm.RecordsetClone.Fields
    Debug.Print fld.Name, fld.Value
                If fld.Name <> ctl.Name Then 'Salto PrimayKey, che è Contatore +1
                   fld.Name = fld.Value
                End If
             Next fld
          .Update
          
          frm.Bookmark = .LastModified 'Mi posiziono sul NewRecord duplicato
    
    Exit_Handler:
     Exit Sub
    
    Err_Handler:
     MsgBox "Errore " & Err.Number & " - " & Err.Description, "DuplicaRek1"
     Resume Exit_Handler
    End Sub
    
    Richiamando la Sub, prendo un errore di run-Time ‘13’ Tipo non corrispondente.
    Dal Debug, rilevo che l’errore è sul ciclo For/Next (al primo valore da assegnare dopo la PrimaryKey).
    Ho provato varie ipotesi, ma non riesco a venirne a capo, potete darmi una mano a ciclare correttamente i campi ed a effettuare l’assegnazione dei valori. Grazie in anticipo

  2. #2
    L'avatar di Max.Riservo
    Max.Riservo non è in linea Scribacchino
    fld.Name = fld.Value
    Sarà forse qui l' errore ?
    Definisci quale è il recordset di partenza (recordsetclone?) e quale è quello di arrivo ....
    Scorri i records dal recordset di partenza e inserisci nel recordset di destinazione ....

  3. #3
    AStart2015 non è in linea Novello
    Si Max, proprio così. Il recordSet di partenza è il Clone della form mentre il RecordSet di destinazione è NewRecord duplicato.
    Quindi come dovrei modificarla la riga incriminata.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Creazione\Duplicazione record con VBA
    Da panoramix nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 15-10-2015, 15:30
  2. Duplicazione record con tabella correlata
    Da francemic nel forum Microsoft Access
    Risposte: 19
    Ultimo Post: 02-01-2014, 19:21
  3. duplicazione record chiave composta
    Da fabietto10 nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 17-12-2013, 11:16
  4. Duplicazione di una parte del record
    Da sergranero nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 20-06-2013, 11:00
  5. Duplicazione record db access
    Da partisan75 nel forum Microsoft Access
    Risposte: 7
    Ultimo Post: 12-03-2010, 07:19