Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di JCave
    Registrato dal
    Oct 2002
    Messaggi
    132

    [VB6] Errore di automazione

    Ho scritto due righe di codice per fare una connessiona ad un db Access ma all'evento command1_click() mi da questo errore:

    Errore di run-time
    '-2147024769(8007007f)':
    Errore di automazione
    Impossibile trovare la procedura specificata

    Premetto che nell'IDE va tutto bene e riesco a leggere i dati del db, appena faccio il pacchetto, installo e eseguo la mini applicazione spunta l'errore!

    Ho usato la creazione guidata dei pacchetti di installazione di VB6.

    Questo è il codice (nei riferimenti del progetto ho messo MS ActiveX Data Objects Recordset Library 2.8 e MS ActiveX Data Objects Library 2.7):

    Option Explicit

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim s() As String

    Private Sub Command1_Click()
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Rubrica.mdb"
    rs.Open "SELECT id, nome , cognome FROM Rubrica ORDER BY cognome ASC", cn, 1
    cmbSeleziona.AddItem ""

    While rs.EOF = False
    cmbSeleziona.AddItem (rs("id").Value & " - " & rs("nome").Value)
    rs.MoveNext
    Wend

    rs.Close
    cn.Close

    End Sub

    Grazie per l'aiuto

  2. #2

    prova...

    se posso consigliare io farei così


    Dim dbPrincipale As DAO.Database
    Dim rsLotti As DAO.Recordset

    Set dbPrincipale = OpenDatabase(Path del DBACCESS, , True)
    Set rsLotti = dbPrincipale.OpenRecordset("SELECT [tbl Lotti MP].* FROM [tbl Lotti MP]")


    rsLotti.MoveFirst
    While Not rsLotti.EOF

    ........

    dbPrincipale.Close


    ecc...

    se può essere d'aiuto io ho fatto così fammi sapere

  3. #3
    Utente di HTML.it L'avatar di JCave
    Registrato dal
    Oct 2002
    Messaggi
    132

    Re: prova...

    Originariamente inviato da Luke(BI)
    se posso consigliare io farei così


    Dim dbPrincipale As DAO.Database
    Dim rsLotti As DAO.Recordset

    Set dbPrincipale = OpenDatabase(Path del DBACCESS, , True)
    Set rsLotti = dbPrincipale.OpenRecordset("SELECT [tbl Lotti MP].* FROM [tbl Lotti MP]")


    rsLotti.MoveFirst
    While Not rsLotti.EOF

    ........

    dbPrincipale.Close


    ecc...

    se può essere d'aiuto io ho fatto così fammi sapere
    Ho fatto così:

    Option Explicit

    Private Sub Form_Load()
    Dim dbPrincipale As DAO.Database
    Dim rsLotti As DAO.Recordset

    Set dbPrincipale = OpenDatabase("C:\Rubrica.mdb", , True)
    Set rsLotti = dbPrincipale.OpenRecordset("SELECT * FROM Rubrica")


    rsLotti.MoveFirst
    While Not rsLotti.EOF
    cmbSeleziona.AddItem (rsLotti("id").Value & " - " & rsLotti("nome").Value)
    rsLotti.MoveNext
    dbPrincipale.Close
    Wend
    End Sub

    ma mi dice che il formato del database C:\Rubrica.mdb non è riconosciuto.
    Ho sbagliato qualcosa?

  4. #4

    mmmm

    hai tirato dentro il Microsoft DAO 3.6 Object Library?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Riferimento:
    Questo è il codice (nei riferimenti del progetto ho messo MS ActiveX Data Objects Recordset Library 2.8 e MS ActiveX Data Objects Library 2.7):
    Scusa o usi 2.8 oppure la 2.7, ma non ti dice che l' hai già utilizzata nel modulo?

    Riferimento:

    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Rubrica.mdb"

    prova con :

    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' C:\Rubrica.mdb' ";Persist Security Info=False"
    rs.Open "SELECT id, nome , cognome FROM Rubrica ORDER BY cognome ASC", cn, adOpenKeyset, adLockOptimistic

    Ciao

  6. #6
    Utente di HTML.it L'avatar di JCave
    Registrato dal
    Oct 2002
    Messaggi
    132
    Originariamente inviato da mgmg
    Riferimento:
    Questo è il codice (nei riferimenti del progetto ho messo MS ActiveX Data Objects Recordset Library 2.8 e MS ActiveX Data Objects Library 2.7):
    Scusa o usi 2.8 oppure la 2.7, ma non ti dice che l' hai già utilizzata nel modulo?

    Riferimento:

    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Rubrica.mdb"

    prova con :

    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' C:\Rubrica.mdb' ";Persist Security Info=False"
    rs.Open "SELECT id, nome , cognome FROM Rubrica ORDER BY cognome ASC", cn, adOpenKeyset, adLockOptimistic

    Ciao
    Ho provato anche così ma nell'IDE continua a funzionare ma quando lo installo in un'altra macchino no.
    Mi è venuto un dubbio: ho notato che nel PC dove installo, non c'è Access! Potrebbe essere questo? Oppure un poblema di pacchetto?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    No access non è un problema, il problema potrebbero essere gli aggiornamenti ai service pack di mdac e jet.
    Sul pc dove ti dà errore hai provato ad installare o verificare se sono installati:
    MDAC_TYP 2.8.EXE e Jet 4.0 SP8

    Per controllare la versione puoi cercare:
    msado15.dll (per ado) e dovrebbe essere: 2.81.....
    msjet40.dll (per jet) e dovrebbe essere: 4.0.8618.0

    Ciao

  8. #8
    Utente di HTML.it L'avatar di JCave
    Registrato dal
    Oct 2002
    Messaggi
    132
    Ho fatto il controllo di entrambi i file e le versioni sono quelle che hai scritto tu.


  9. #9
    Utente di HTML.it L'avatar di JCave
    Registrato dal
    Oct 2002
    Messaggi
    132
    UP

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Prova a leggere questo articolo:
    http://support.microsoft.com/default...d=kb;it;839428

    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.