Condividi tramite

Access 2003 <--> MySql tramite VB

Anonimo
2016-02-24T17:21:04+00:00

Buonasera a tutti, vorrei aprire una connessione tra Access e MySql tramite Visual Basic.

Nella funzione click di un button che inserisce la riga in una tabella access provo ad aprire la connessione:

   Dim wrkODBC As Workspace

   Set wrkODBC = CreateWorkspace("newODBCWorkspace", "admin", "", dbUseODBC)

   Set mySqlCon = wrkODBC.OpenConnection("DRIVER={MySQL ODBC 5.3 Unicode Driver};" _

   & "SERVER=localhost;port=3306;" _

   & "DATABASE=utenti;" _

   & "USER=root;" _

   & "PASSWORD=;" _

   & "Option=3;")

Ricevo l'errore:

runtime 3146

ODBC: chiamata non riuscita

Ho provato a cercare ovunque ma non trovo una soluzione;

Ho installato ODBC mySql 5.3 su Windows 10 32bit

Grazie!

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

2 risposte

Ordina per: Più utili
  1. Anonimo
    2016-02-25T12:52:21+00:00

    Ciao Alessandro,

    dando per scontato che non hai problemi di accesso dell'utente root (visto che stai lavorando in locale), credo che nella tua stringa di connessione ti manchi l'indicazione del nome della connessione DSN da utilizzare.

    Nella mia macchina ho creato una connessione DSN chiamata TestMySQL e successivamente con questa routine riesco ad accedere al db remoto e collegare una tabella.


    Private Sub LinkTable()

        Dim wk As Workspace

        Dim Mytdf As TableDef

        Dim cn As Connection

        Dim strConnect As String

        Set wk = DBEngine.CreateWorkspace("ODBCDirect", "", "", dbUseODBC)

        strConnect = "ODBC;DATABASE=utenti;UID=root;PWD=;DSN=TestMySql"

        Set cn = wk.OpenConnection("Connect1", dbDriverNoPrompt, _

                False, strConnect)

        On Error Resume Next

            CurrentDb.TableDefs.Delete "My_Table"

        On Error GoTo 0

        Set Mytdf = CurrentDb.CreateTableDef("My_Table")

            Mytdf.Connect = strConnect

            Mytdf.SourceTableName = "user"

            CurrentDb.TableDefs.Append Mytdf

        cn.Close

        wk.Close

    End Sub

    --- 

    Modificando il tuo codice come segue, la connessione viene stabilita senza errori


        Dim wrkODBC As Workspace

        Dim mysqlcon As Object

        Set wrkODBC = CreateWorkspace("newODBCWorkspace", "admin", "", dbUseODBC)

        Set mysqlcon = wrkODBC.OpenConnection( _

            "ODBC;DRIVER={MySQL ODBC 5.3 Unicode Driver};" _

            & "SERVER=localhost;port=3306;" _

            & "DATABASE=utenti;" _

            & "USER=root;" _

            & "PASSWORD=;" _

            & "DSN=TestMySql;" _

            & "Option=3;")


    David

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-02-25T09:34:42+00:00

    Ciao Alessandro,

    l'errore generico ODBC: chiamata non riuscita non è sufficiente per sapere cosa non va.

    Per avere maggiori dettagli implementa la routine d'errore mostrata in questo articolo:

    Come ottenere ulteriori informazioni sulla chiamata ODBC non riuscita Errore

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento