[VBA] Ouvrir une base de données par le code ?

Ouvrir une base de données par le code ? [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 01-06-2004 à 13:16:03    

Salut a tous !
 
Je ne sais pas comment faire pour ouvrir une base de données sous VBA(Excel) par le code  :( (pas de control genre Data, DataGrid...) et la traiter pour afficher ce que veut dans excel. :??:  :??:  
 
C'est ce qui a en bleu qui m'interresse le plus.
 
Merci de me répondre si vous savez ça m'aiderai vraiment.

Reply

Marsh Posté le 01-06-2004 à 13:16:03   

Reply

Marsh Posté le 01-06-2004 à 13:40:05    

Une base de donnée oui, mais laquelle ? (Oracle, Sql Server, ...)
 
p.s. : les informations en rouge sont le plus importante

Reply

Marsh Posté le 01-06-2004 à 14:09:20    

[:rofl]
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 01-06-2004 à 14:39:44    

ajoute ADO dans tes propriétés de projet et tu auras fait un grand pas en avant. (j'espère que tu connais ADO)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 01-06-2004 à 19:54:30    

JagStang a écrit :

Une base de donnée oui, mais laquelle ? (Oracle, Sql Server, ...)
 
p.s. : les informations en rouge sont le plus importante


 
pour la base de donnée, elle sont en oracle...
 
et je te prierai de ne pas te foutre de ma geule !, svp !  :kaola:  :D  
 

drasche a écrit :

ajoute ADO dans tes propriétés de projet et tu auras fait un grand pas en avant. (j'espère que tu connais ADO)


 
Non je ne sais pas ce que c'est que ADO (peut-etre qqchose en rapport avec la réference Microsoft Active X Data Object mais je sais pas) j'ai cependant trouvé un exemple tout à l'heure d'excel qui parlé d'ADO(C:\Program Files\Microsoft Office\Office\Samples\SAMPLES.XLS), je le met ça peut aider qqu'un :
 

Code :
  1. Sub RetrieveAccessData()
  2. '' NOTE: Pour pouvoir utiliser cette sous-routine, la
  3. ''       bibliothèque suivante doit être référencée :
  4. '''
  5. '''         Microsoft ActiveX Data Objects 2.0 Library
  6.    
  7.    Dim conn As ADODB.Connection
  8.    Dim rst As ADODB.Recordset
  9.    Dim Nsql As String, Njoin As String, Ncriteria As String
  10.    Dim NewBook As Workbook
  11.    Dim i As Integer
  12.    ' Création de l'objet Connexion
  13.     Set conn = New ADODB.Connection
  14.     With conn
  15.         ' Définition du fournisseur OleDB pour la connexion
  16.         .Provider = "Microsoft.JET.OLEDB.4.0"
  17.         ' Ouverture d'une connexion vers Comptoir.mdb
  18.         .Open Application.Path & "\samples\Comptoir.mdb"
  19.     End With
  20.  
  21.     Nsql = "SELECT DISTINCTROW Catégories.[Code catégorie], Produits.[Nom du produit], Produits.[Quantité par unité], Produits.[Prix unitaire] "
  22.     Njoin = "FROM Catégories INNER JOIN Produits ON Catégories.[Code catégorie] = Produits.[Code catégorie] "
  23.     Ncriteria = "WHERE ((([Produits].Indisponible)=No) AND (([Produits].[Unités en stock])>20));"
  24.    
  25.     ' Création d'un nouvel objet Recordset (jeu d'enregistrement)
  26.     Set rst = New ADODB.Recordset
  27.     With rst
  28.         ' Connexion du jeu d'engistrement à la connexion ouverte précédemment
  29.         .ActiveConnection = conn
  30.         ' Récupération de tous les enregistrements retournés par la requête
  31.         .Open Nsql & Njoin & Ncriteria, conn, adOpenDynamic, adLockBatchOptimistic
  32.     End With
  33.     ' Ajout d'une nouvelle feuille de calcul à ce classeur
  34.     Set NewBook = Workbooks.Add
  35.     ' Récupération des noms de champs, et stockage de ces noms dans la feuille de calcul
  36.     For i = 0 To rst.Fields.Count - 1
  37.         NewBook.Sheets(1).Range("a1" ).Offset(0, i).Value = rst.Fields(i).Name
  38.     Next i
  39.     ' Copie du jeu d'enregistrement vers la nouvelle feuille de calcul
  40.     NewBook.Sheets(1).Range("a2" ).CopyFromRecordset rst
  41.     ' Fermeture du jeu d'enregistrements
  42.     Set rst = Nothing
  43.     ' Fermeture de la connexion
  44.     conn.Close
  45. End Sub


 
Merci drasche, ton "ADO" confirme mon exemple.
 :jap:


Message édité par prog1001 le 01-06-2004 à 19:55:35
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed