Newsgroup: it.comp.appl.access
Titolo: Problema in VBA con Opendatabase su ODBC

Lavoro in VBA di Access, vorrei aprire, da codice, un database esterno per
delle modifiche tramite ODBC, ma mi dà errore 3024 (impossibile
trovare file)
Questo è il pezzo di codice incriminato:
Dim MioDB as Database
Set MioDB = OpenDatabase("PIPPO")
    With MioDB
        .Connect = "ODBC;DSN=PIPPO;UID=;PWD=;DATABASE=PIPPO"
    End With
Girando sui vari NG in rete ho visto che è un problema già evidenziato
da altri ma non ci sono risposte.
Ho provato varie sintassi oltre a quella sopra ma il risultato non
cambia. Se lascio Opendatabase("") nella seconda riga, mi si attiva la
finestra di dialogo dell'ODBC e riesco a connettermi manualmente ma
vorrei lavorare in automatico.
Grazie per l'aiuto
Alessandro

"ale" <> Lavoro in VBA di Access, vorrei aprire, da codice, un database

Hai fatto un copia e incolla della stringa da un DSN corretto?

 ha scritto nel messaggio
news:43905fcd.02110...@posting.google.com...

Ma se il DSN contiene tutti i riferimenti al tuo DB, perchè
devi ridarglieli.....???
.Connect = "ODBC;DSN=PIPPO"
Io con MySQL faccio così e funziona....!
@Alex.

 vorrei lavorare in automatico.
    Forse questi esempi potranno esserti utili.
' ============================================================
  Public Function mbAcSample012()
' ------------------------------------------------------------
' AC00 ; ADO
' ------------------------------------------------------------
' Descrizione:
'
'   Esempio di connessione a database mediante DSN di sistema.
'
' ------------------------------------------------------------
' Maurizio Borrelli
' 2002-11-04
' ------------------------------------------------------------
  On Error GoTo erh
' ------------------------------------------------------------
  Dim sDSN            As String
  Dim sQuery          As String
  Dim oADOcon         As ADODB.Connection
  Dim oADOrst         As ADODB.Recordset
  Dim oADOfldSocietą  As ADODB.Field
  Dim oADOfldContatto As ADODB.Field
' ------------------------------------------------------------
  sDSN = ";DSN=Northwind;"
  sQuery = "SELECT"
  sQuery = sQuery & "  T.[NomeSocietą] AS [NomeSocietą]"
  sQuery = sQuery & ", T.[Contatto]    AS [Contatto]"
  sQuery = sQuery & " FROM"
  sQuery = sQuery & "  [Clienti]       AS T"
  sQuery = sQuery & " WHERE"
  sQuery = sQuery & "  T.[NomeSocietą] Is Not Null"
  sQuery = sQuery & " ORDER BY"
  sQuery = sQuery & "  T.[NomeSocietą] DESC"
  Set oADOcon = New ADODB.Connection
  Set oADOrst = New ADODB.Recordset
  With oADOcon
    .Open sDSN
    Debug.Print .ConnectionString
  End With
  With oADOrst
    .Open sQuery, oADOcon, adOpenStatic, adLockReadOnly
    If Not ((.BOF = True) And (.EOF = True)) Then
      With .Fields
        Set oADOfldSocietą = .Item("NomeSocietą")
        Set oADOfldContatto = .Item("Contatto")
      End With
      Debug.Print oADOfldSocietą.Name,
      Debug.Print oADOfldContatto.Name,
      Debug.Print
      Debug.Print
      Do Until (.EOF = True)
        Debug.Print oADOfldSocietą.Value,
        Debug.Print oADOfldContatto.Value,
        Debug.Print
        .MoveNext
      Loop
      Debug.Print
    End If
  End With
ext:
  On Error Resume Next
  oADOrst.Close
  oADOcon.Close
  Set oADOfldContatto = Nothing
  Set oADOfldSocietą = Nothing
  Set oADOrst = Nothing
  Set oADOcon = Nothing
  Exit Function
erh:
  With Err
    MsgBox .Description, vbCritical, "ERR#" & .Number
  End With
  Resume ext
  End Function
' ============================================================
' ============================================================
  Public Function mbAcSample011()
' ------------------------------------------------------------
' AC00 ; DAO
' ------------------------------------------------------------
' Descrizione:
'
'   Esempio di connessione a database mediante DSN di sistema.
'
' ------------------------------------------------------------
' Maurizio Borrelli
' 2002-11-04
' ------------------------------------------------------------
  On Error GoTo erh
' ------------------------------------------------------------
  Dim sDSN            As String
  Dim sQuery          As String
  Dim oDAOdbe         As DAO.DBEngine
  Dim oDAOwsp         As DAO.Workspace
  Dim oDAOcon         As DAO.Connection
  Dim oDAOrst         As DAO.Recordset
  Dim oDAOfldSocietą  As DAO.Field
  Dim oDAOfldContatto As DAO.Field
' ------------------------------------------------------------
  sDSN = ";DSN=Northwind;"
  sQuery = "SELECT"
  sQuery = sQuery & "  T.[NomeSocietą] AS [NomeSocietą]"
  sQuery = sQuery & ", T.[Contatto]    AS [Contatto]"
  sQuery = sQuery & " FROM"
  sQuery = sQuery & "  [Clienti]       AS T"
  sQuery = sQuery & " WHERE"
  sQuery = sQuery & "  T.[NomeSocietą] Is Not Null"
  sQuery = sQuery & " ORDER BY"
  sQuery = sQuery & "  T.[NomeSocietą] DESC;"
  Set oDAOdbe = New DAO.DBEngine
  With oDAOdbe
    Set oDAOwsp _
      = .CreateWorkspace( _
            "MyWsp" _
          , "" _
          , "" _
          , DAO.dbUseODBC)
  End With
  With oDAOwsp
    Set oDAOcon = .OpenConnection(sDSN)
  End With
  With oDAOcon
    Debug.Print .Connect
    Set oDAOrst _
      = .OpenRecordset( _
            sQuery _
          , _
          , DAO.dbFailOnError)
  End With
  With oDAOrst
    If Not ((.BOF = True) And (.EOF = True)) Then
      With .Fields
        Set oDAOfldSocietą = .Item("NomeSocietą")
        Set oDAOfldContatto = .Item("Contatto")
      End With
      Debug.Print oDAOfldSocietą.Name,
      Debug.Print oDAOfldContatto.Name,
      Debug.Print
      Debug.Print
      Do Until (.EOF = True)
        Debug.Print oDAOfldSocietą.Value,
        Debug.Print oDAOfldContatto.Value,
        Debug.Print
        .MoveNext
      Loop
      Debug.Print
    End If
  End With
ext:
  On Error Resume Next
  oDAOrst.Close
  oDAOcon.Close
  oDAOwsp.Close
  Set oDAOfldContatto = Nothing
  Set oDAOfldSocietą = Nothing
  Set oDAOrst = Nothing
  Set oDAOcon = Nothing
  Set oDAOwsp = Nothing
  Set oDAOdbe = Nothing
  Exit Function
erh:
  With Err
    MsgBox .Description, vbCritical, "ERR#" & .Number
  End With
  Resume ext
  End Function
' ============================================================
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------