Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    {VB6} Copiare record da una tabella ad una tabella

    Ciao a tutti,
    come faccio a copiare i dati esistenti di una tabella.mdb e incollarli in un'altra taballa1.mdb con la sostituzione dei dati?

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Utilizza la "SELECT ..... INTO ......" .
    Ne abbiamo giā parlato ieri, cerca nei post precedenti.

    Ciao,
    Ciao, Brainjar

  3. #3
    Un modo potrebbe essere questo:
    codice:
    Dim db As Database
    Dim SQL as string
    Dim rs1 As Recordset 
    
    Dim db2 As Database
    Dim rs2 As Recordset 
    Dim datitemp As String
    
    Set db = OpenDatabase("archivio.mdb")
    
    SQL = "SELECT * FROM tabellaDaCuiCopiare WHERE..."
    Set rs = db.OpenRecordset(SQL)
    
    datitemp = rs.Fields("NomeCampoDaCuiCopiare")'prendi il dato di cui vuoi farne la copia
    
    SQL = "SELECT * FROM tabellaInCuiCopiare WHERE..."
    Set rs = db.OpenRecordset(SQL)
    
    rs.fields("NomeCampoInCuiCopiare") = datitemp 'inserisci il campo che hai copiato nella nuova tabella
    Fammi sapere se sono stato chiaro e se ti sono stato d'aiuto, Ciao

  4. #4
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da mardok30
    Un modo potrebbe essere questo:
    codice:
    Dim db As Database
    Dim SQL as string
    Dim rs1 As Recordset 
    
    Dim db2 As Database
    Dim rs2 As Recordset 
    Dim datitemp As String
    
    Set db = OpenDatabase("archivio.mdb")
    
    SQL = "SELECT * FROM tabellaDaCuiCopiare WHERE..."
    Set rs = db.OpenRecordset(SQL)
    
    datitemp = rs.Fields("NomeCampoDaCuiCopiare")'prendi il dato di cui vuoi farne la copia
    
    SQL = "SELECT * FROM tabellaInCuiCopiare WHERE..."
    Set rs = db.OpenRecordset(SQL)
    
    rs.fields("NomeCampoInCuiCopiare") = datitemp 'inserisci il campo che hai copiato nella nuova tabella
    Fammi sapere se sono stato chiaro e se ti sono stato d'aiuto, Ciao
    ciao,
    potresti spiegare in cosa consistono i puntini?
    SQL = "SELECT * FROM tabellaInCuiCopiare WHERE..."
    poi quello ke mi serve č sostituire tutti i record di quella tabella in un colpo solo
    p.s.
    il db presnta diverse tabelle, uso il data1 come controllo

  5. #5
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Se vuoi farlo in un colpo solo devi utilizzare per forza
    la "SELECT .... INTO ...."

    codice:
    Dim ds As String 
    Dim cn As  ADODB.Connection
    Set cn = New ADODB.Connection
    ds = "PathNameCompletoDelDB" ' ad esempio "C:\Dati\MioDB.mdb" 
    ' Apri la connessione   
    With cn
        .CursorLocation = adUseClient
        .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ds & ";" 
    End With
    
    ' MiaTabella č la Tabella esistente, 
    ' MiaNuovaTabella č quella da creare.
    On Error Resume Next  
    cn.Execute "DROP TABLE MiaNuovaTABELLA"
    cn.Execute "SELECT * INTO MiaNuovaTABELLA FROM MiaTabella "
    Devi avere il riferimento ad ADO 2.X nel progetto.

    Ciao,
    Ciao, Brainjar

  6. #6
    Prova un po':
    Aggiungi questo riferimento al progetto:
    Microsoft DAO 3.6 Object library

    codice:
    Dim db As Database
    Dim SQL As String
    Dim rs1 As Recordset
    
    Dim rs2 As Recordset
    Dim datitemp As String
    
    Set db = OpenDatabase("archivio.mdb")
    
    SQL = "SELECT * FROM tabellaDaCuiCopiare"
    Set rs = db.OpenRecordset(SQL)
    
    SQL = "SELECT * FROM tabellaInCuiCopiare"
    Set rs2 = db.OpenRecordset(SQL)
    
    Do While Not rs.EOF
    
    datitemp = rs.Fields("NomeCampoDaCuiCopiare") 'prendi il dato di cui vuoi farne la copia
    
    rs2.AddNew
    rs2.Fields("NomeCampoInCuiCopiare") = datitemp 'inserisci il campo che hai copiato nella nuova tabella
    rs2.Update
    
    rs.MoveNext
    Loop
    Ciao

  7. #7
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    poi quello ke mi serve č sostituire tutti i record di quella tabella in un colpo solo
    codice:
    Do While Not rs.EOF
    
    datitemp = rs.Fields("NomeCampoDaCuiCopiare") 'prendi il dato di cui vuoi farne la copia
    
    rs2.AddNew
    rs2.Fields("NomeCampoInCuiCopiare") = datitemp 'inserisci il campo che hai copiato nella nuova tabella
    rs2.Update
    
    rs.MoveNext
    Loop
    Questo č in un loop solo.

    Ciao,
    Ciao, Brainjar

  8. #8
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Ragazzi,
    io non voglio copiare un campo o un record, ma voglio sostituire tutti i record! con i nuovi

  9. #9
    Puoi fare un ciclo per eliminare tutti i record della seconda tabella e poi usare il codice che ti ho dato

  10. #10
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da mardok30
    Puoi fare un ciclo per eliminare tutti i record della seconda tabella e poi usare il codice che ti ho dato
    Ciao MARDOK30,
    allora diciamo ke non ho usato il tuo code ma questo:
    Dim ds As String
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    ds = "PathNameCompletoDelDB" ' ad esempio "C:\Dati\MioDB.mdb"
    ' Apri la connessione
    With cn
    .CursorLocation = adUseClient
    .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ds & ";"
    End With

    ' MiaTabella č la Tabella esistente,
    ' MiaNuovaTabella č quella da creare.
    On Error Resume Next
    cn.Execute "DROP TABLE MiaNuovaTABELLA"
    cn.Execute "SELECT * INTO MiaNuovaTABELLA FROM MiaTabella "

    in pratica questo vā in parte in quanto, in questo modo non mi sostituisce i records ma me li accoda, e la cosa non mi stā bene, praticamente la tabella temp, deve fungere da temporanea, quindi esiste un modo all' apertura del form ke con un comando mi elimini tutti i record della tabella temp, x poi inserire i nuovi col code di sopra?.
    ciao?

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.