+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Connessione database Access con PWD

  1. #1
    pierovb non  in linea Scolaretto
    Buonasera a tutti,
    Per connettere una database uso la seguente routine :
    Assegno alla variabile "pathmdb" il percorso del database che "leggo" da un file .ini
    Nel modulo dichiaro :

    Global pathmdb
    Public cn As ADODB.Connection
    Public rs As ADODB.Recordset
    Public cmd  As ADODB.Command
    Public par  As ADODB.Parameter
    
    quindi apro la connessione

    
    Sub ApriConnessione()
    
        Set cn = New ADODB.Connection
        With cn
            .Provider = "Microsoft.jet.oledb.4.0"
            .Mode = adModeReadWrite
            .CursorLocation = adUseClient
            .ConnectionString = "data source=" & pathmdb
            .Open
        End With
    
    End Sub
    
    quello che non riesco pi a fare ( non mi ricordo e non ci riesco proprio) e concatenare la stringa della eventuale password del database.

    la stringa cos composta

    codice HTML:
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db.mdb;Jet OLEDB:Database Password=lamiapassword;
    ma non riesco ad adattarla alla mia routine.
    Mi aiutate. Grazie

  2. #2
    pierovb non  in linea Scolaretto
    Dopo aver fatto riposare un p i pochi neuroni che mi sono rimasti ho trovato la "banalissima" soluzione per concatenare la stringa.
    
       Set cn = New ADODB.Connection
        With cn
            .Provider = "Microsoft.jet.oledb.4.0"
            .Mode = adModeReadWrite
            .CursorLocation = adUseClient
            .ConnectionString = "Data Source=" & pathmdb
            .ConnectionString = .ConnectionString & ";Jet OLEDB:Database Password=prova"
            .Open
        End With
    
    Mi rimane sempre un dubbio, ma scritta cos
    .ConnectionString = "Data Source=" & pathmdb & ";Jet OLEDB:Database Password=prova"
    
    non la stessa cosa ?
    Perch non funziona ?

  3. #3
    Non funziona in nessuno dei due casi?
    ℹ️ Leggi di pi su AntonioG ...

  4. #4
    pierovb non  in linea Scolaretto
    Funziona solo con
    .ConnectionString = "Data Source=" & pathmdb
     .ConnectionString = .ConnectionString & ";Jet OLEDB:Database Password=prova"
    

  5. #5
    Sono equivalenti deve funzionare.
    Facci vedere cosa scrivi esattamente nell'altro caso
    ℹ️ Leggi di pi su AntonioG ...

  6. #6
    pierovb non  in linea Scolaretto
    Sono equivalenti deve funzionare.
    Infatti... pero'
    cosi' solleva l'errore "password non valida"

    Sub ApriConnessione()
         Set cn = New ADODB.Connection
        With cn
            .Provider = "Microsoft.jet.oledb.4.0"
            .Mode = adModeReadWrite
            .CursorLocation = adUseClient
            .ConnectionString = "Data Source=" & pathmdb & ";Jet OLEDB:Database Password=prova"
      Debug.Print .ConnectionString       
     .Open
        End With
    
    End Sub
    
    e stranamente effettuato il debug ho notato che la stringa si ferma al pathmdb
    Data Source=C:\NewFattura\Registro.mdb
    
    mentre se uso
    Sub ApriConnessione()
         Set cn = New ADODB.Connection
        With cn
            .Provider = "Microsoft.jet.oledb.4.0"
            .Mode = adModeReadWrite
            .CursorLocation = adUseClient
            .ConnectionString = "Data Source=" & pathmdb
            .ConnectionString = .ConnectionString & ";Jet OLEDB:Database Password=prova"
           Debug.Print .ConnectionString
            .Open
        End With
    
    End Sub
    
    la stringa di debug completa
    Data Source=C:\NewFattura\Registro.mdb;Jet OLEDB:Database Password=prova
    
    Non riesco a capire dov' l'errore.

  7. #7
    Non ha senso a meno che in pathmdb non ci sia qualche carattere strano non visualizzabile che crea problemi.
    Controlla il codice ascii di ogni carattere presente in pathmdb (non ti fidare di quello che vedi). Usa un ciclo come

        Dim i As Integer
        For i = 1 To Len(pathmdb)
            Debug.Print Asc(Mid(pathmdb, i, 1));
        Next i
    
    ℹ️ Leggi di pi su AntonioG ...

  8. #8
    pierovb non  in linea Scolaretto
    questo quanto scritto nel file .ini
    Key3=\NewFattura\Registro.mdb
    
    e questo quello che fa vedere il debug con il codice da te proposto

    92 78 101 119 70 97 116 116 117 114 97 92 82 101 103 105 115 116 114 111 46 109 100 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    tutti sti zeri ?

    Come sempre mi hai indicato la strada giusta!
    Il problema dato dalla lettura del file .ini

      Sub LeggiValori()
               INIFileName = App.path & "\Impostazioni.ini"
        Dim MyValue1 As String * 60
        Dim MyValue2 As String * 60
        Dim MyValue3 As String * 120    !!!!!!!!!
           
        Dim Result1 As String
        Dim Result2 As String
        Dim Result3 As String
        
           Result1 = GetPrivateProfileString("1CHIAVE", "Key1", "E", MyValue1, Len(MyValue1), INIFileName)
           Result2 = GetPrivateProfileString("1CHIAVE", "Key2", "E", MyValue2, Len(MyValue2), INIFileName)
           Result3 = GetPrivateProfileString("1CHIAVE", "Key3", "E", MyValue3, Len(MyValue3), INIFileName)
        
           path = MyValue1
           mdb = MyValue2
           pathmdb = MyValue3
    
    L'ho usato per un percorso in rete ( copia-incolla), ma in questo caso pathmdb diventa una stringa di 120 caratteri
    ecco tutti quegli zeri.
    Ho calcolato la giusta lunghezza della stringa pathmdb e funziona in tutt'e due i modi.
    Grazie

  9. #9
    Gli zeri ci sono perch la stringa a lunghezza fissa (String * 120). Comunque, meglio sempre capire cosa succede e rimediare.
    ℹ️ Leggi di pi su AntonioG ...

  10. #10
    L'avatar di TheTruster
    TheTruster non  in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Quote Originariamente inviato da pierovb Visualizza il messaggio
    L'ho usato per un percorso in rete ( copia-incolla), ma in questo caso pathmdb diventa una stringa di 120 caratteri
    ecco tutti quegli zeri.
    Eventualmente usa la Trim sulla stringa per eliminare tutti gli spazi inutili prima e/o dopo del valore contenuto nella variabile Result3... e in tutte le altre eventualmente.
    ℹ️ Leggi di pi su TheTruster ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. [VB .NET 2010] Connessione Database access
    Da napster86 nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 05-11-2012, 18:56
  2. Problema connessione database access da asp.net 2.0
    Da luca.capozzi nel forum ASP 3, ASP .Net
    Risposte: 0
    Ultimo Post: 16-12-2008, 11:04
  3. Dataenvironment VB6 connessione database access
    Da cris77 nel forum Visual Basic 6
    Risposte: 8
    Ultimo Post: 27-11-2008, 11:18
  4. Connessione a database access tramite VB
    Da momi nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 31-07-2008, 17:25
  5. Connessione con Database Access
    Da francodace nel forum Visual Basic 6
    Risposte: 12
    Ultimo Post: 14-11-2005, 20:47