Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    384

    [VBA] Esportazione dati da Access a Excel tramite ADO

    Ciao ragazzi,
    sto cercando di salvare dei dati con una connessione ADO su un file Excel, il codice che uso e' il seguente:
    codice:
    Private Sub testExcel_Click()
        Dim strSQL  As String, conStr As String
        Dim cnn As New ADODB.Connection
        Dim RS As New ADODB.Recordset
        Dim A As Integer
        Dim DBPath As String
        
        DBPath = "W:\prestitalia\test-tavoli\controlli_annullate_2017_11_20.xlsx"  'Refering the sameworkbook as Data Source
        conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & DBPath & "';" & _
                     "Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;"";"
     '************************* SCRITTURA FILE EXCEL
        strSQL = "INSERT INTO [SFoglio1] VALUES('VA', 'On', 'Computers', 'Mid', 30)"
        strSQL = "Insert Into [Foglio1$] (ID,Name,Amt) Values(1,'Bob',3.10)"
        strSQL = "INSERT INTO [Foglio1$] (pratica) VALUES (111)"
        cnn.Open conStr
        cnn.Execute strSQL
        
        cnn.Close
        Set cnn = Nothing
    End Sub
    ma si blocca sull'execute dandomi il seguente errore:

    Errore di run-time '-2147467259 (80004005)':Per l'operazione è necessaria una query aggiornabile

    Ho anche provato ad inserire ReadOnly=0 nelle extended property della connessione ma non cambia nulla, mi sapete aiutare?
    Da un grande potere derivano grandi responsabilità

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    A parte l'errore di sintassi sulla prima strSQL (SFoglio1 è sbagliato), tu stia tentando maldestramente di eseguire 3 comandi INSER INTO 'sperando' che il l'oggetto Connection lo capisca, suo malgrado.

    Non funziona così, però devi spiegarci se il tuo intento è quello di inserire 3 record, oppure tutti i valori in un solo record (come sembrerebbe).

  3. #3
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    384
    Ciao Gibra,
    sto cercando di inserire i valori in un solo record, le prime due stringhe sql sono esempi che ho trovato su internet e che non funzionano anche se inserisco foglio1$ come tabella. E' solo l'ultima riga sql che mi interessa utilizzare
    Da un grande potere derivano grandi responsabilità

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    La sintassi è corretta, quindi il problema risiede da qualche altra parte.
    Ma a 'distanza' e senza poter fare debugging non è sempre semplice capire.

  5. #5
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    384
    Evvivaaaaaa!!!!!!!!
    Sono riuscito a capire il problema, era il parametro IMEX=1, togliendolo si riesce a scrivere sul file Excel.
    Nella lettura serve a non avere errori quando la colonna che si sta leggendo ha sia numeri che date che testo, tratta la colonna come se fosse un campo di testo, in scrittura probabilmente non serve e va in errore.
    Da un grande potere derivano grandi responsabilità

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 © 2024 vBulletin Solutions, Inc. All rights reserved.