Accès à tous types de base de données via adodb

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 975 fois - Téléchargée 40 fois

Contenu du snippet

Voici un exemple de code qui permet de se connecter à n'importe qu'elle type
de base de données ( ce code fonctionne sous XP avec VB 5.0 ) :

S'assurer au préalable que vous utiliser la référence suivante ( Menu Projet/ Référence ) :
Microsoft ActiveX Data Objet 2.7 Libray

Source / Exemple :


Public sub Connection()

Dim CoLilas As New ADODB.Connection
Dim Rec_Mod As New ADODB.Recordset
Dim Rec_Estamp As New ADODB.Recordset

Dim Ident as string
Dim Provider as string
Dim Connexion as string
Dim Connectdb as Boolean

'**** C'est à vous de choisir le type de base auquel vous voulez accèder.

'*** Connexion Sql Serveur.
Provider = "SQLOLEDB.1"   
Connexion = "Persist Security Info=False;" & _
            "User ID=admin; Password=admin;Initial Catalog=BASE-TEST;" & _
            "Data Source=SERVEURSQL"
    
'*** connexion Fichier Base Access 95,97
'Provider = "Microsoft.JET.OLEDB.3.51"  
'Connexion = "C:\Base\ma_db.mdb"

'*** connexion Fichier Base Access 2000,XP
'Provider = "Microsoft.JET.OLEDB.4.0"  
'Connexion = "C:\Base\ma_db.mdb"

'*** connexion via un base déclaré dans ODBC
'Provider = "MSDASQL.1" 
'Connexion = "Data Source=BASE-TEST"

'*** connexion à une base Oracle
'Provider = "MSDAORA" 
'Connexion = "Data Source=BASE-TEST;User ID=admin;" & _
'            "Password=admin"

         
'**** Connexion à la Base de données
ConnectBd = True
With CoLilas
  .Provider = Provider
  .ConnectionString = Connexion
  .ConnectionTimeout = 6
  .CommandTimeout = 60
  .Open
End With
ConnectBd = False

'**** Lecture d'un enregistrement
ident = "123"
Rec_Estamp.Open "select DADMAJ, HEUMAJ from TAB1 where CDVERS ='1'" & _
                " and CDPRG = '" & Ident & "';", CoLilas, adOpenForwardOnly, adLockReadOnly
                
If Rec_Estamp.EOF Then
   ok = MsgBox("Erreur lors de la lecture de la date de mise à jour !", vbExclamation + vbSystemModal, "LilasExplor")
Else
   msgbox Rec_Estamp!DADMAJ & Rec_Estamp!HEUMAJ
End If
Rec_Estamp.Close

'**** Mise à jour
Ident = "153243"
Rec_Mod.Open "select DADMAJ, HEUMAJ from TAB2 where CDVERS ='1'" & _
             " and CDFOAP = '" & Mid(Ident, 1, 2) & _
             "' and CDARL = '" & Mid(Ident, 3) & "';", CoLilas, adOpenDynamic, adLockPessimistic
                  
If Rec_Mod.EOF Then
   ok = MsgBox("Erreur lors de la mise à jour !" & vbCrLf & "Enregistrement non trouvé !", vbExclamation + vbSystemModal, "LilasExplor")
Else
   Rec_Mod!DADMAJ = Format(Date, "YYYYMMDD")
   Rec_Mod!HEUMAJ = Format(Time, "HHMMSS")
   Rec_Mod.Update
End If
Rec_Mod.Close

Exit Sub
gestion_erreur:
   If ConnectBd = True Then

       '**** Gestion des erreurs de connexion à la base de données.
       Err_debut = True
       ok = MsgBox("Erreur de connexion à la base de données.", vbExclamation + vbSystemModal, "LilasExplor")
   
       'Call Info_Err("Module1", "Sub_Connection")
   Else
     'Call Info_Err("Module1", "Sub_Connection")
   End If
End Sub

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
samedi 10 septembre 2005
Statut
Membre
Dernière intervention
15 septembre 2005

merci
mais a t'il une code pour se connecter a une base de données Access 2000,XP qui se trouve sur un serveur.
Messages postés
2
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
21 octobre 2004

J'ai un petit pb de connexion en fait j'ai une erreur "User-defined type not defined" pour la ligne de définition de la variable "Dim CoLilas As New ADODB.Connection". Est-ce que cela peut venir du fait qu'il me manque la référence Microsoft ActiveX Data Objet 2.7 Libray?
merci d'avance pour la réponse
Messages postés
4
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
21 avril 2004

Attention à l'orthographe
déclaration de connectdb
mais un peu partout tu utilises ConnectBd

Sinon tout marche merci ;)
Messages postés
4
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
21 avril 2004

Merci beaucoup de ton post. Je teste ce code avec ma base XP et la 6.0 studio.

Sur ce site, vous avez toujours réponse à tout avant même que l on ait des problèmes, Merciiiii
Messages postés
11
Date d'inscription
vendredi 27 septembre 2002
Statut
Membre
Dernière intervention
12 septembre 2003

je trouve que il ya bcp de code pour une connection en adodbc
et par le manuelle ca va pas plus vite?
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.