Pour me connecter à la base à l'ouverture du logiciel j'utilise ce code :
Code : Tout sélectionner
Global db
Global DSN.s = "bdd"
Global Etat_connection.b
Procedure database_connect()
If Etat_connection = #False
If OpenDatabase(db, DSN, "", "17a93b") = 0
MessageRequester("Erreur", "Impossible d'ouvrir la base de donnée", #MB_ICONERROR)
End
Else
Etat_connection = #True
EndIf
EndIf
EndProcedure
Procedure database_disconnect()
If Etat_connection = #True
CloseDatabase(db)
Etat_connection = #False
EndIf
EndProcedure
Enumeration 1
#ODBC_ADD_DSN ; Ajoute une source de données utilisateur.
#ODBC_CONFIG_DSN ; Configure/Modifie une source de données utilisateur existante.
#ODBC_REMOVE_DSN ; Supprime une source de données utilisateur existante.
#ODBC_ADD_SYS_DSN ; Ajoute une source de données système.
#ODBC_CONFIG_SYS_DSN ; Configure/Modifie une source de données système existante.
#ODBC_REMOVE_SYS_DSN ; Supprime une source de données système existante.
#ODBC_REMOVE_DEFAULT_DSN ; Supprime la source de données définies par défaut.
EndEnumeration
#ODBC_DRIVER_MSACCESS = "Microsoft Access Driver (*.mdb)"
Procedure.l MSAccess_AddConnection(name.s, database.s, hwnd.l = #Null)
Protected attrs.s
attrs + "UID=" + ";"
attrs + "PWD=" + ";"
attrs + "DSN=" + name + ";"
attrs + "DBQ=" + database + ";"
attrs + "FIL=" + "MS Access;"
attrs + "Driver=" + "ODBCJT32.DLL;"
attrs + "DefaultDir=" + GetPathPart(database) + ";"
attrs + "Description=" + FormatDate("Créé le %dd-%mm-%yyyy, %hh:%ii:%ss;", Date())
ReplaceString(attrs, ";", #NULL$, 2)
ProcedureReturn SQLConfigDataSource_(hWnd, #ODBC_ADD_DSN, #ODBC_DRIVER_MSACCESS, attrs)
EndProcedure
Procedure.l MSAccess_RemoveConnection(name.s, hwnd.l = #Null)
ProcedureReturn SQLConfigDataSource_(hWnd, #ODBC_REMOVE_DSN, #ODBC_DRIVER_MSACCESS, "DSN="+name)
EndProcedure
UseODBCDatabase()
MSAccess_AddConnection(DSN, GetCurrentDirectory()+"bdd.mdb")
Code : Tout sélectionner
MSAccess_RemoveConnection(DSN)