Lire une table sous access

Lire une table sous access - VB/VBA/VBS - Programmation

Marsh Posté le 27-07-2004 à 08:46:21    

Encore besoin d'aide, j'aimerais créer une boucle pour lire toutes les lignes d'une table jusuq'à atteindre le dernier enregistrement.
Je veux lire la valeur à la ligne 0, puis celle ligne 1..... jusqu'à ligne n.
 
En vous remerciant d'avance

Reply

Marsh Posté le 27-07-2004 à 08:46:21   

Reply

Marsh Posté le 27-07-2004 à 09:04:11    

Lit toutes les valeurs de chaques enregistrements et les mets dans une MSFLEXGRID.
 

Code :
  1. Sub LitEnregistrement()
  2.    Dim conn As ADODB.Connection
  3.    Dim rst As ADODB.Recordset
  4.     Set conn = New ADODB.Connection
  5.     With conn
  6.         .Provider = "Microsoft.JET.OLEDB.4.0"
  7.         .Open Adresse_de_la_bdd
  8.     End With
  9.     Set rst = New ADODB.Recordset
  10.    
  11.     With rst
  12.         .ActiveConnection = conn
  13.         .Open "SELECT * FROM table", conn, adOpenDynamic, adLockBatchOptimistic
  14.     End With
  15.    
  16.     If rst.Fields.Count <> 0 Then
  17.    
  18.     Dim i%
  19.     Dim t%
  20.    
  21.     MSFlexGrid1.Rows = 2
  22.    
  23.     Do While Not rst.EOF = True
  24.         For t = 0 To rst.Fields.Count - 1
  25.             If Not IsNull(rst.Fields(t).Value) Then
  26.             MSFlexGrid1.TextMatrix(i + 1, t) = rst.Fields(t).Value
  27.             End If
  28.         Next t
  29.        
  30.         i = i + 1
  31.         rst.MoveNext
  32.         MSFlexGrid1.AddItem ""
  33.     Loop
  34.    
  35.     End If
  36.     Set rst = Nothing
  37.     conn.Close
  38. End Sub


 
 :)


Message édité par prog1001 le 27-07-2004 à 09:04:36
Reply

Marsh Posté le 27-07-2004 à 09:08:30    

Je te remercie je vais essayer cela en esperant avoir bien compris

Reply

Marsh Posté le 27-07-2004 à 09:11:21    

il faut référencé Microsoft ActiveX Data Objects (version la plus récente, c'est mieux).

Reply

Marsh Posté le 27-07-2004 à 09:40:10    

bien compliqué je ne suis qu'un novice...
En fait ca ne fonctionne pas
 
J'ai une table qui référence mes mails par type d'affaire
genre:  
Aff001 - Mail Entrant - Date - Ref
Aff002 - Mail Sortant - Date - Ref
Aff001 - Mail Entrant - Date - Ref
Aff001 - Mail Entrant - Date - Ref
 
J'ai un sélecteur ou je choisis mon affaire et j'aimerais que dans une case il me donne le nombre de mail déja enregistré sur cette affaire, J'ai besoin de cette valeur pour numeroter mes mails par affaire.
genre si je choisis l'affaire Aff001, il doit me renvoyer 3, le mail que j'enregistrerait en suivant aura comme réf. 4.
Le problème que j'essaie de passer est que si je choisis Aff003, n'ayant aucun mail il doit me renvoyer 0
 
je ne sais pas si j'ai ete clair.
 
Merci d'avance

Reply

Marsh Posté le 27-07-2004 à 09:59:25    

heu tu fait bien ça sur VB6 au moins parceque si c'est sur access la je ne sais pas faire.
 
si j'ai bien compris il faut faire une requete pour compter le nombre d'affaire pour l'utiliser comme nouvelle ref pour le prochain mail.
 
mais avant tous est tu sûre d'avoir référencé 'Microsoft data obj....'
-Menu projet
-Référence...
-Microsoft ActiveX Data Objects 2.7 library (dans la liste)

Reply

Marsh Posté le 27-07-2004 à 10:13:30    

VB6 je suppose !!!
 
pour référencé ca je ne sais pas...

Reply

Marsh Posté le 27-07-2004 à 10:30:23    

Pour référencé :
-Menu projet
-Références...
-Microsoft ActiveX Data Objects 2.7 library (a coché dans la liste dans la liste)
 
il faut que tu place une MSflexgrid (dans projet/composants/Microsoft FlexGrid...)
 
que tu mettes le code vu plus haut. et que tu appelle la procédure
Ex :
 
Private sub Form_Load()
call LitEnregistrement
End sub
 
il faut changer dans le code Adresse_de_la_bdd et table
 
si ça ne marche toujour pas dit-moi ou ça bug


Message édité par prog1001 le 27-07-2004 à 10:31:01
Reply

Marsh Posté le 04-08-2004 à 11:59:00    

Tine, une autre méthode, moins performante, mais beaucoup plus simple celon moi:
http://www.supinfo-projects.com/fr [...] donnees_vb

Reply

Sujets relatifs:

Leave a Replay

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