Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Aggiungere due record con DAO

  1. #1
    L'avatar di RaoulDuke
    RaoulDuke non è in linea Scolaretto
    Post
    138
    Like Inviati  
    3
    Like Ricevuti  
    0
    Buongiorno a tutti!
    Torno a chiedere l'aiuto degli esperti.

    Si è già discusso in parte di questo tema in questo 3D ma lo scenario è cambiato, ragione per la quale apro una nuova discussione.

    Ho la necessità di intervenire su due tabelle del mio database:
    - TabProdotti (IDProdotto PK, IDSottocategoriaProdotto, IDProduttore, ecc)
    - TabPrezzi (IDPrezzo PK, IDProdotto FK, IDListino, PrezzoUnitario, Date inizio e fine val)

    Le tabelle sono in relazione Uno (Prodotti) a Molti (Prezzi).
    La tabella tabPrezzi si occupa di gestire lo storico dei prezzi di due listini (di acquisto e di vendita).

    All'immissione di alcuni nuovi prodotti (non tutti hanno due listini, alcuni possiedono solo il Prezzo di vendita in quanto si tratta di prestazioni) nel catalogo da parte dell'utente, vorrei che l'inserimento dei due nuovi record (uno per ogni listino) sia gestito da una transazione.

    Ho riscritto completamente il codice che utilizzavo prima perché ha cominciato a generare errori inaspettati che sono riuscito solo in parte a sistemare.

    Ho utilizzato un nuovo approccio, utilizzando come Recordset sul quale agire, quello generato da una query basata sulle due tabelle in questione.

    Questo il codice:
    Private Sub cmdSalva_Click()
        Dim wrk As DAO.Workspace
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
     
    On Error GoTo ErrorHandler
     
        Set wrk = DBEngine.Workspaces(0)
        Set dbs = CurrentDb
        Set rst = dbs.OpenRecordset("qryProdottiPrezzi")
     
        wrk.BeginTrans
            ' Se la categoria è "Prestazioni" devo immettere un solo record (prezzo di vendita)
            If Me.cboIDCategoriaProdotto = 2 Then
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!Descrizione = Me.Descrizione
                rst!IDListino = 2
                rst!PrezzoUnitario = Me.txtPrezzoVenditaEff
                rst!DataInizioValidita = Me.txtDataInizioValidita
                rst!DataFineValidita = #12/31/9999#
                rst.Update
            
            'Se la categoria non è "Prestazioni" devo immettere due record (prezzo d'acquisto e prezzo di vendita)
            Else
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!IDProduttore = Me.cboIDProduttore
                rst!Descrizione = Me.Descrizione
                rst!IDListino = 1
                rst!PrezzoUnitario = Me.txtPrezzoAcq
                rst!DataInizioValidita = Me.txtDataInizioValidita
                rst!DataFineValidita = #12/31/9999#
                rst.Update
                
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!IDProduttore = Me.cboIDProduttore
                rst!Descrizione = Me.Descrizione
                rst!IDListino = 2
                rst!PrezzoUnitario = Me.txtPrezzoVenditaEff
                rst!DataInizioValidita = Me.txtDataInizioValidita
                rst!DataFineValidita = #12/31/9999#
                rst.Update
            End If
        
        If MsgBox("Immettere nuovo prodotto?", vbQuestion + vbYesNo) = vbYes Then
            wrk.CommitTrans
        Else
            wrk.Rollback
        End If
     
       rst.Close
       dbs.Close
       wrk.Close
     
       Set rst = Nothing
       Set dbs = Nothing
       Set wrk = Nothing
     
       Exit Sub
     
    ErrorHandler:
       MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
    End Sub
    
    Il codice funziona ad eccezione di un particolare.
    I due record che vengono immessi (uno per listino) devono condividere lo stesso IDProdotto.
    Il mio problema è che non so come recuperare questo dato, perché l'IDProdotto viene generato automaticamente al momento stesso dell'immissione del record nella tabella tabProdotto, in quanto chiave primaria.

    Credo che forse una soluzione sarebbe quella di separare l'inserimento dei record nelle due tabelle. Prima si inserisce nella tabProdotti, si recupera l'IDProdotto così generato e infine si creano i due record nella tabPrezzi.

    Mi chiedevo invece se ci sono strade più veloci e meno complicate.

    Grazie per i vostri consigli!

  2. #2
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    3,097
    Like Inviati  
    2
    Like Ricevuti  
    4
    @@Identity usato come campo di una select restituisce l'ultimo Id inserito.
    ℹ️ Leggi di più su Brontolo ...

  3. #3
    L'avatar di RaoulDuke
    RaoulDuke non è in linea Scolaretto
    Post
    138
    Like Inviati  
    3
    Like Ricevuti  
    0
    Grazie mille per il suggerimento.

    Per ora ci ho messo una pezza in questo modo.
    Faccio due transazioni, una dopo l'altra.
    La prima agisce sulla tabella tabProdotto. Poi recupero l'IDProdotto appena creato attraverso una funzione DLookup e faccio partire una seconda transazione sulla tabella tabPrezzi.

    In questo modo:
    Private Sub cmdSalva_Click()
        Dim wrk As DAO.Workspace
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
        Dim Prodotto As Integer
      
    On Error GoTo ErrorHandler
    
        'Per la tabella Prodotti
        Set wrk = DBEngine.Workspaces(0)
        Set dbs = CurrentDb
        Set rst = dbs.OpenRecordset("tabProdotti")
      
        wrk.BeginTrans
            ' Se la categoria è "Prestazioni"
            If Me.cboIDCategoriaProdotto = 2 Then
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!Descrizione = Me.Descrizione
                rst.Update
             
            'Se la categoria non è "Prestazioni"
            Else
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!IDProduttore = Me.cboIDProduttore
                rst!Descrizione = Me.Descrizione
                rst.Update
            End If
         
            wrk.CommitTrans
      
       rst.Close
       dbs.Close
       wrk.Close
      
       Set rst = Nothing
       Set dbs = Nothing
       Set wrk = Nothing
       
       'Per la tabella prezzi
       On Error GoTo ErrorHandler2
       
        Set wrk = DBEngine.Workspaces(0)
        Set dbs = CurrentDb
        Set rst = dbs.OpenRecordset("tabPrezzi")
        Prodotto = DLookup("IDProdotto", "tabProdotti", "Descrizione = '" & Me.Descrizione & "'")
      
        wrk.BeginTrans
            ' Se la categoria è "Prestazioni"
            If Me.cboIDCategoriaProdotto = 2 Then
                rst.AddNew
                rst!IDProdotto = Prodotto
                rst!IDListino = 2
                rst!PrezzoUnitario = Me.txtPrezzoVenditaEff
                rst!DataInizioValidita = Me.txtDataInizioValidita
                rst!DataFineValidita = #12/31/9999#
                rst.Update
             
            'Se la categoria non è "Prestazioni"
            Else
                rst.AddNew
                rst!IDProdotto = Prodotto
                rst!IDListino = 2
                rst!PrezzoUnitario = Me.txtPrezzoVenditaEff
                rst!DataInizioValidita = Me.txtDataInizioValidita
                rst!DataFineValidita = #12/31/9999#
                rst.Update
                
                rst.AddNew
                rst!IDProdotto = Prodotto
                rst!IDListino = 1
                rst!PrezzoUnitario = Me.txtPrezzoAcq
                rst!DataInizioValidita = Me.txtDataInizioValidita
                rst!DataFineValidita = #12/31/9999#
                rst.Update
            End If
         
        If MsgBox("Immettere nuovo prodotto?", vbQuestion + vbYesNo) = vbYes Then
            wrk.CommitTrans
        Else
            wrk.Rollback
        End If
      
       rst.Close
       dbs.Close
       wrk.Close
      
       Set rst = Nothing
       Set dbs = Nothing
       Set wrk = Nothing
      
    Exit Sub
      
    ErrorHandler:
       MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
       wrk.Rollback
       
    ErrorHandler2:
       MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
       wrk.Rollback
       
    End Sub
    
    Non mi pare molto elegante, ma funziona.

    Sono invece molto interessato dalle potenzialità di @@Identity. Sto leggendo un po' a riguardo ma non mi è ancora chiaro l'impostazione che dovrei utilizzare.

    Sai dirmi di più?

    Grazie a tutti!

  4. #4
    L'avatar di RaoulDuke
    RaoulDuke non è in linea Scolaretto
    Post
    138
    Like Inviati  
    3
    Like Ricevuti  
    0
    Ragionando meglio sulla mia impostazione attuale, mi sono accorto che fare agire le transazioni in sequenza non è ideale.
    La prima potrebbe andare a buon fine ma la seconda no: in questo caso il rollback avverrebbe solo sulla seconda, il che farebbe perdere senso all'utilizzo delle transazioni stesse.

    Credo che l'impostazione corretta sarebbe di annidare le transazioni una nell'altra.
    Devo però ancora pensare su come affrontare il problema: senza il CommitTrans della prima transazione non posso utilizzare DLookup per recuperare l'IDProdotto che serve alla seconda transazione.

    L'alternativa è capire come utilizzare @@Identity ma brancolo un po' nel buio...

  5. #5
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,745
    Like Inviati  
    0
    Like Ricevuti  
    20
    Identity serve a recuperare l'ultimo ID inserito, ma non funziona se la TRANSAZIONE è ancora aperta..., quindi io non sono certissimo sia la cosa migliore, nel caso usassi le transazioni.
    Se non le usi basta fare così
    NewId = DBEngine(0)(0).OpenRecordset("SELECT @@identity FROM NomeTabella")(0)
    
    Se invece racchiudi tutti in transazioni e, annidi più transazioni, questo metodo non va bene in quanto la tabella non salva nulla formalmente... e serve usare quest'altro
    ' Apertura Transazione
    With Rst1
        .AddNew
               ....
        .Update
        .Bookmark = .LastModified
        lIdentity = !IDPk
    End With
    .... altre modifiche...
    ' Chiusura Transazione
    
    ℹ️ Leggi di più su @Alex ...

  6. #6
    Post
    1,816
    Like Inviati  
    0
    Like Ricevuti  
    4
    Quote Originariamente inviato da RaoulDuke Visualizza il messaggio
    ...
    Credo che l'impostazione corretta sarebbe di annidare le transazioni una nell'altra.
    ...
    L'alternativa è capire come utilizzare @@Identity ma brancolo un po' nel buio...
    Era "sbagliato" anche prima usare il DLookup per recuperare l'IDProdotto, la procedura da manuale sarebbe stata appunto l'uso di @@Identity.
    Sembra quasi che i questi due argomenti si stiano chiamando a vicenda
    https://www.iprogrammatori.it/forum-...ni-t45565.html
    e trovi una possibile soluzione (che lo stesso autore "di là" ha già scritto di qua: @Alex. Da me invece per le lamentele)
    Hai un backend Access?

  7. #7
    L'avatar di RaoulDuke
    RaoulDuke non è in linea Scolaretto
    Post
    138
    Like Inviati  
    3
    Like Ricevuti  
    0
    Seguendo i vostri consigli:

    Private Sub cmdSalva_Click()
    
        Dim wrk As DAO.Workspace
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
      
    On Error GoTo ErrorHandler
      
        Set wrk = DBEngine.Workspaces(0)
        Set dbs = CurrentDb
        Set rst = dbs.OpenRecordset("qryProdottiPrezzi")
      
        wrk.BeginTrans
            ' Se la categoria è "Prestazioni" devo immettere un solo record (prezzo di vendita)
            If Me.cboIDCategoriaProdotto = 2 Then
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!Descrizione = Me.Descrizione
                rst!IDListino = 2
                rst!PrezzoUnitario = Me.txtPrezzoVenditaEff
                rst!DataInizioValidita = Me.txtDataInizioValidita
                rst!DataFineValidita = #12/31/9999#
                rst.Update
             
            'Se la categoria non è "Prestazioni" devo immettere due record (prezzo d'acquisto e prezzo di vendita)
            Else
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!IDProduttore = Me.cboIDProduttore
                rst!Descrizione = Me.Descrizione
                rst!IDListino = 1
                rst!PrezzoUnitario = Me.txtPrezzoAcq
                rst!DataInizioValidita = Me.txtDataInizioValidita
                rst!DataFineValidita = #12/31/9999#
                rst.Update
                rst.Bookmark = rst.LastModified
                Prodotto = rst!IDProdotto
                 
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!IDProdotto = Prodotto
                rst!IDProduttore = Me.cboIDProduttore
                rst!Descrizione = Me.Descrizione
                rst!IDListino = 2
                rst!PrezzoUnitario = Me.txtPrezzoVenditaEff
                rst!DataInizioValidita = Me.txtDataInizioValidita
                rst!DataFineValidita = #12/31/9999#
                rst.Update
            End If
         
        If MsgBox("Immettere nuovo prodotto?", vbQuestion + vbYesNo) = vbYes Then
            wrk.CommitTrans
        Else
            wrk.Rollback
        End If
      
       rst.Close
       dbs.Close
       wrk.Close
      
       Set rst = Nothing
       Set dbs = Nothing
       Set wrk = Nothing
      
       Exit Sub
      
    ErrorHandler:
       MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
       wrk.Rollback
       
    End Sub
    
    Ho fatto debug e l'IDProdotto viene recuperato correttamente.
    Ottengo però questo errore:

    Errore #3341: Il campo corrente deve corrispondere alla chiave di join ‘?’ nella tabella lato ‘uno’ della relazione uno-a-molti. Immettere un record nella tabella lato ‘uno’ con il valore della chiave desiderato, quindi creare la voce con la chiave di join desiderata nella tabella lato ‘molti’.
    Ho pensato potesse essere un problema della query da cui origina il Recordset. Ma ho provato dal foglio dati della query ad immettere dei nuovi record e funziona correttamente.

  8. #8
    Post
    1,816
    Like Inviati  
    0
    Like Ricevuti  
    4
    Quote Originariamente inviato da RaoulDuke Visualizza il messaggio
    Seguendo i vostri consigli:
    Ma manca tutta la prima parte, quella in cui scrivi nella tabProdotti, o mi sono perso qualcosa?
    Prendo le parti significative del codice del tuo #3

    Private Sub cmdSalva_Click()
        Dim wrk As DAO.Workspace
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
        Dim lIdentity As Long '<========
       
    On Error GoTo ErrorHandler
     
        'Per la tabella Prodotti
        Set wrk = DBEngine.Workspaces(0)
        Set dbs = CurrentDb
        Set rst = dbs.OpenRecordset("tabProdotti")
       
        wrk.BeginTrans
            ' Se la categoria è "Prestazioni"
            If Me.cboIDCategoriaProdotto = 2 Then
            ...
            'Se la categoria non è "Prestazioni"
            Else
            ...
            End If
            'in entrambi i casi hai già fatto un rst.Update
            rst.Bookmark = rst.LastModified '<========
            lIdentity = rst!IDProdotto '<========
    
           'ho ancora le variabili oggetto "attive"
           Set rst = dbs.OpenRecordset("tabPrezzi")
    
            If Me.cboIDCategoriaProdotto = 2 Then
                rst.AddNew
                rst!IDProdotto = lIdentity 
                ...
                rst.Update
              
            'Se la categoria non è "Prestazioni"
            Else
                rst.AddNew
                rst!IDProdotto = lIdentity '<========
                ...
                rst.Update
                 
                rst.AddNew
                rst!IDProdotto = lIdentity '<========
                ...
                rst.Update
            End If
    
        If MsgBox("Immettere nuovo prodotto?", vbQuestion + vbYesNo) = vbYes Then
            wrk.CommitTrans
        Else
            wrk.Rollback
        End If
       
       rst.Close
       dbs.Close
       wrk.Close
       
       Set rst = Nothing
       Set dbs = Nothing
       Set wrk = Nothing
    ...
    'gestione errori
    
    Magari qualche riga m'è scappata ma il concetto è questo.
    Ultima modifica di Phil_cattivocarattere; 07-01-2021 15:43 

  9. #9
    L'avatar di RaoulDuke
    RaoulDuke non è in linea Scolaretto
    Post
    138
    Like Inviati  
    3
    Like Ricevuti  
    0
    Nel mio ultimo post ho cambiato il modo di generare il recorset. Ho tentato di intervenire su un solo recordset generato da una query di selezione sulle due tabelle in questione.

    Ho capito anch'io che non ne vale la pena, meglio agire sui recordset delle tabelle.

    Sto provando così:

    Private Sub cmdSalva_Click()
    
        Dim wrk As DAO.Workspace
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
        Dim rst1 As DAO.Recordset
        Dim Prodotto As Long
       
    On Error GoTo ErrorHandler
    
    
        
            Set wrk = DBEngine.Workspaces(0)
            Set dbs = CurrentDb
            Set rst = dbs.OpenRecordset("tabProdotti")
            Set rst1 = dbs.OpenRecordset("tabPrezzi")
       
            wrk.BeginTrans
            
            'Categoria Prestazioni
            If Me.cboIDCategoriaProdotto = 2 Then
                'Tabella Prodotti
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!Descrizione = Me.Descrizione
                rst.Update
                rst.Bookmark = rst.LastModified
                Prodotto = rst!IDProdotto
              
                'Tabella Prezzi
                rst1.AddNew
                rst1!IDProdotto = Prodotto
                rst1!IDListino = 2
                rst1!PrezzoUnitario = Me.txtPrezzoVenditaEff
                rst1!DataInizioValidita = Me.txtDataInizioValidita
                rst1!DataFineValidita = #12/31/9999#
                rst1.Update
                
            'Per le altre categorie
            Else
                'Tabella Prodotti
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!IDProduttore = Me.cboIDProduttore
                rst!Descrizione = Me.Descrizione
                rst.Update
                rst.Bookmark = rst.LastModified
                Prodotto = rst!IDProdotto
              
                'Tabella Prezzi - Prezzo Acquisto
                rst1.AddNew
                rst1!IDProdotto = Prodotto
                rst1!IDListino = 1
                rst1!PrezzoUnitario = Me.txtPrezzoAcq
                rst1!DataInizioValidita = Me.txtDataInizioValidita
                rst1!DataFineValidita = #12/31/9999#
                rst1.Update
                
                'Tabella Prezzi - Prezzo Vendita
                rst1.AddNew
                rst1!IDProdotto = Prodotto
                rst1!IDListino = 2
                rst1!PrezzoUnitario = Me.txtPrezzoVenditaEff
                rst1!DataInizioValidita = Me.txtDataInizioValidita
                rst1!DataFineValidita = #12/31/9999#
                rst1.Update
                
                
            End If
            wrk.CommitTrans
            
    TransExit:
       rst.Close
       dbs.Close
       wrk.Close
       
       Set rst = Nothing
       Set rst1 = Nothing
       Set dbs = Nothing
       Set wrk = Nothing
        
    Exit Sub
    
    ErrorHandler:
       MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
       wrk.Rollback
       Resume TransExit
        
    
       
    End Sub
    
    Sto verificando se funziona.

  10. #10
    Post
    1,816
    Like Inviati  
    0
    Like Ricevuti  
    4
    (questa l'avevo scritta come edit al #8 ma avevi già risposto e non solo rischiava di passare inosservata ma assume ancor più significato dopo il tuo #9)
    Vedo molto codice ripetuto quasi riga per riga, con differenze minime. Con le If (o i Select Case) anch'io all'inizio facevo così, prendevo una casistica, la gestivo, passavo alla successiva, la gestivo, e via di seguito.
    Quando però ti accorgi che continui a scrivere la stessa cosa, forse bisogna cambiare punto di vista. Il risultato è sempre lo stesso, la manutenzione del codice ne guadagna parecchio.

    Esempio:
            ' Se la categoria è "Prestazioni"
            If Me.cboIDCategoriaProdotto = 2 Then
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!Descrizione = Me.Descrizione
                rst.Update
              
            'Se la categoria non è "Prestazioni"
            Else
                rst.AddNew
                rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
                rst!IDTipoIva = Me.IDTipoIva
                rst!IDProduttore = Me.cboIDProduttore '<========
                rst!Descrizione = Me.Descrizione
                rst.Update
            End If
    
    In questa l'unica differenza sostanziale è la riga in cui ho messo la freccia. Così ottieni lo stesso risultato con meno righe, si capisce anche meglio in cosa consiste davvero la differenza e l'eventuale modifica del codice si deve fare una volta sola.
    rst.AddNew
    rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
    rst!IDTipoIva = Me.IDTipoIva
    If Me.cboIDCategoriaProdotto = 2 Then
       rst!IDProduttore = Me.cboIDProduttore
    End If
    rst!Descrizione = Me.Descrizione
    rst.Update
    
    La If l'ho messa lì in mezzo, nello stesso punto in cui tu avevi inserito IDProduttore, ma può essere tranquillamente messa alla fine, come ultimo campo da valorizzare, prima dell'update ovviamente
    rst.AddNew
    rst!IDSottocategoriaProdotto = Me.cboIDCategoriaProdotto
    rst!IDTipoIva = Me.IDTipoIva
    rst!Descrizione = Me.Descrizione
    
    If Me.cboIDCategoriaProdotto = 2 Then
       rst!IDProduttore = Me.cboIDProduttore
    End If
    
    rst.Update
    
    (ho un po' abbondato con le righe di separazione del codice)
    Da rivedere bene, tutto, in base al tuo #9
    Ultima modifica di Phil_cattivocarattere; 07-01-2021 15:52 

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Aggiungere record via codice
    Da Archimed3 nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 13-04-2013, 11:33
  2. Impossibile aggiungere record
    Da matteghiro nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 31-03-2012, 10:40
  3. Aggiungere record db access
    Da tonca nel forum Visual Basic .Net
    Risposte: 12
    Ultimo Post: 19-08-2010, 10:44
  4. Aggiungere record ad una vista
    Da camillo nel forum Microsoft Word
    Risposte: 7
    Ultimo Post: 22-01-2008, 20:13
  5. Aggiungere Record
    Da marinaio nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 22-04-2005, 10:21