Liaison base de données

Fermé
sonia - 10 avril 2009 à 23:31
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 10 avril 2009 à 23:57
Bonjour,
comment je peux faire la liaison entre un projet vb et une base de données
merci d'avance

4 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
10 avril 2009 à 23:47
le plus simple pour les bases de données sous windows est d'utiliser les liens ODBC

je te conseille de chercher un truc comme ca:
https://www.google.fr/search?hl=fr&q=odbc+visual+basic+&meta=si&gws_rd=ssl tu trouves pas, demain je pourrais t'envoyer un mini bout de code pour se connecter avec le driver odbc 3.51 de mysql...

t'utilises quoi comme base? access? Mysql? sql server? oracle ? postgre ?
0
j"utilise mysql pour la base de donnée
merci pour le lien je vais aussi chercher a mon tour
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
10 avril 2009 à 23:52
tien,s tu aura deja besoin du driver mysql:
https://dev.mysql.com/downloads/connector/odbc/5.1.html

moii j'avais la version précédente, je pense que cette version fonctionne aussi bien ;)

pour le code, je vais regarder si je l'ai sous la main, je viens de voir que j'avais mon disk dur avec moi ;)
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
10 avril 2009 à 23:57
ici le fichier que j'utilise (je vais virer les info concernant mes tables....)


Attribute VB_Name = "access_bdd_mysql"
  Public connex As ADODB.Connection
  Public rs As ADODB.Recordset
  Public rs1 As ADODB.Recordset
  Public rs2 As ADODB.Recordset
  Public rs_sub As ADODB.Recordset
  
  Public serv_db As String
  Public datbase As String
  Public user_db As String
  Public pwd_user_db As String
  Public option_db As Integer

  
Public Sub config()
'attention il faut mettre vos option de connection
  serv_db = "127.0.0.1"
  datbase = "nom_de_la_base"
  user_db = "root"
  pwd_user_db = ""
  option_db = 35


  Set connex = New ADODB.Connection
  Set rs = New ADODB.Recordset
  Set rs1 = New ADODB.Recordset
  Set rs2 = New ADODB.Recordset
  Set rs_sub = New ADODB.Recordset

End Sub
Public Sub Connecter_BDD()
  On Error GoTo erreur
  connex.CursorLocation = adUseServer
    connex.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & serv_db & ";DATABASE=" & datbase & ";USER=" & user_db & ";PASSWORD=" & pwd_user_db & ";OPTION=" & option_db & ""
    Exit Sub
erreur:
MsgBox "Impossible d'établir la connection à la base de données MySQL."
End Sub

Public Sub Deconnecter()
  connex.Close
End Sub
Public Function requete(ByVal rs_sql As String, ByRef rs_sub As ADODB.Recordset) As Boolean
'cette procedure va permettre de récupérer des informations concernant les tables
'retourne true dans le cas ou la requete et bien executer et que des enregistrement sont présents
  If connex.State = 0 Then
    Connecter_BDD
  End If
  If connex.State = 1 Then
    Set rs_sub = New ADODB.Recordset
    rs_sub.ActiveConnection = connex
'    rs_sql = Replace(rs_sql, "'", "[%]", 1, -1)
    rs_sql = Replace(rs_sql, "|", "'", 1, -1)
    rs_sql = Replace(rs_sql, "''", "' '", 1, -1)
    rs_sql = Replace(rs_sql, "[%]", "''", 1, -1)
'Debug.Print rs_sql
    On Error GoTo erreur
    rs_sub.Open rs_sql, connex, adOpenDynamic, adLockOptimistic
    If rs_sub.EOF Then
      requete = False
    Else
      requete = True
    End If
  Else
    requete = False
  End If
  Exit Function
erreur:
'MsgBox "Une erreur c'est produite avec.... " & rs_sql
requete = False
End Function

Public Sub exec_requete(ByVal rs_sql As String)
'cette procedure va permettre de récupérer des informations concernant les tables
  If connex.State = 0 Then
    Connecter_BDD
  End If
  rs_sql = Replace(rs_sql, "'", "[%]", 1, -1)
  rs_sql = Replace(rs_sql, "|", "'", 1, -1)
  rs_sql = Replace(rs_sql, "''", "' '", 1, -1)
  rs_sql = Replace(rs_sql, "[%]", "''", 1, -1)
  On Error GoTo erreur
'Debug.Print rs_sql
  connex.Execute rs_sql
  Exit Sub
erreur:
Debug.Print rs_sql
MsgBox "Une erreur c'est produite avec.... " & rs_sql
End Sub

Public Sub fin()
'ferme les différentes connections ouverte
  If connex.State = 1 Then Deconnecter
  If rs_sub.State = 1 Then rs_sub.Close
  If rs.State = 1 Then rs.Close
  If rs1.State = 1 Then rs1.Close
  If rs2.State = 1 Then rs2.Close
End Sub



et pour faire une requete:
a = requete("SELECT * FROM `talbe` WHERE `fid`=" & No_F, rs)

il y a une modif a faire: Menu Projet .... references .... Et tu coches quelques chose qui ressemble a Microsoft ActiveX Data Objects X.X Library (je sais pas sous quelle version de VB c'était ca... moi j'avais fait en VB6)

en cherchant ca https://www.google.fr/search?hl=fr&q=%22Public+connex+As+ADODB.Connection%22+&meta=&gws_rd=ssl tu retrouvera la source
0