Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473

    VB6 Errore strano su connessione ado

    Ciao a tutti nel mio progetto ho una serie di query che eseguo una dietro l'altra,
    ESEMPIO:

    Set conn = New ADODB.Connection
    conn.Open CN_REPORT
    conn.Execute "DELETE FROM STAMPA_COSTI_FASI"
    conn.Close
    Set conn = Nothing

    dove CN_REPORT è inizializzato nel form con la seguente procedura,

    Percorso = App.Path & "\ini_DB_REPORT.txt" 'assegno alla variabile percorso il percorso per aprire il file NumFile = FreeFile 'Restituisce un valoreInteger che rappresenta il successivo numero di file disponibile da utilizzare con l'istruzione Open. Open Percorso For Input As #NumFile 'apro il file in modo che posso leggere i dati salvati Do While Not EOF(NumFile) 'ciclo che continua fino a quando non si è arrivati alla fine del file Input #NumFile, Percorso_REPORT 'legge la riga relativa del file Loop Close #NumFile 'chiudo il file

    dove il percorso del DB è salvato in un file dove all'interno ho scritto E:\programma\db.mdb

    il problema sta che io eseguo le query una dietro l'altra poi arriva ad un certo punto e mi da il seguente errore:

    Errore di run-time '-2147467259 (80004005)':
    "C:\programma\db.mdb" non è un percorso valido. Assicurarsi che il nome del percorso sia corretto e di essere collegati al server in cui si trova il file.

    infatti dentro il file il percorso è "E:\programma\db.mdb",

    se eseguo il progetto in modalita passo a passo e visualizzo la variabile cn_report e conn dentro il controllo immediato, vedo che il percorso che linka è in E e non in C, percio fino all'istruzione conn.Open CN_REPORT le variabili sono giuste poi compilo SQL e poi qnd eseguo la query rs.Open SQL, conn mi dà l'errore!!!
    la query funziona, infatti l'ho fatta con access e non mi da nessn errore!


    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    conn.Open CN_REPORT

    SQL = "SELECT COSTO_FASI.n_commessa, MACCHINE.descr, Sum(COSTO_FASI.durata_mac) AS SommaDidurata_mac, Sum(COSTO_FASI.costo_altri) AS SommaDicosto_altri, Sum(COSTO_FASI.costo_dir) AS SommaDicosto_dir, Sum(COSTO_FASI.costo_ind) AS SommaDicosto_ind, Sum(COSTO_FASI.costo_mac) AS SommaDicosto_mac, Sum(COSTO_FASI.durata_mac_h) AS SommaDidurata_mac_h FROM COSTO_FASI INNER JOIN MACCHINE ON COSTO_FASI.n_mac = MACCHINE.Cod_mac GROUP BY COSTO_FASI.n_commessa, MACCHINE.descr;"

    rs.Open SQL, conn 'QUA MI DA ERRORE

    While Not rs.EOF

    indice1 = indice1 + 1
    ReDim Preserve arr(indice1)

    arr(indice1).N_COMM = rs.Fields(0).Value
    arr(indice1).c_mac = rs.Fields(1).Value
    arr(indice1).durata_mac_h = rs.Fields(2).Value
    arr(indice1).h_tot_altri = rs.Fields(3).Value
    arr(indice1).h_tot_diretti = rs.Fields(4).Value
    arr(indice1).h_tot_indiretti = rs.Fields(5).Value
    arr(indice1).durata_mac = rs.Fields(7).Value

    tempo = arr(indice1).durata_mac
    Ore = Int(tempo \ 3600)
    Minuti = (tempo - Ore * 3600) \ 60
    Secondi = tempo Mod 60
    arr(indice1).durata_mac_h = Ore & ":" & Minuti & ":" & Secondi


    rs.MoveNext
    Wend

    rs.Close
    conn.Close

    Set conn = Nothing
    Set rs = Nothing



    come è possibile che dopo una serie di query che hanno sempre funzionato un bel giorno mi deve far impazzire cosi???

    I misteri di vb!!!

    Accetto qls aiuto possibile!!!

    grazie

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Qualche suggerimento per mettere in condizioni, chi legge, di aiutarti:

    1.
    Come da Regolamento, il codice va formattato utilizzando tra i tag CODE <codice> /CODE (basta usare il pulsante # per questo), altrimenti come in questo caso diventa di difficile comprensione.

    2.
    Non è mai stato vero che le query che funzionano in Access devono funzionare anche in VB.
    Anzi, di solito è proprio il contrario.
    Non si deve confondere l'ambiente MSAccess con l'ambiente VB6.

    Per questo, prima di eseguire una query la si deve sempre verificare, ovvero
    codice:
    Debug.Print SQL
    dopo di che si controlla meticolosamente la stringa SQL per vedere se e dove vi sono errori.

    3.
    Non vedo che senso ha spiegare a mo' di guida l'uso delle funzioni del linguaggio (Open, Freefile, ecc.) che usi; è inutile ed il solo risultato che ottieni è quello di confondere la lettura del messaggio.

    4.
    Hai spiegato che apri un file (ini_DB_REPORT.txt) ma non si è capito il perchè, né cosa contiene il file.

    5. Aggiungiamo qualche errore di sintassi e di espressione (inevitabili in un posto così lungo) e la frittata è fatta. Un esempio per tutti. Hai scritto (ho diviso la frase su due righe a e b per chiarezza):
    a) - il problema sta che io eseguo le query una dietro l'altra
    b) - poi arriva ad un certo punto e mi da il seguente errore:
    Devi renderti conto che per chi legge:
    a): non è comprensibile (il problema sta?...)
    b): non fa capire nulla (ad un certo punto?... Quale punto?... Dove?...)


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.