Recupérer dans une variable la valeur d'un enregistremenr [Access, VBA]

nezkikool Messages postés 17 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 10 mai 2010 - 2 mai 2010 à 21:41
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 - 4 mai 2010 à 12:42
Re-bonjour,

Je suis vraiment désolé de vous poser toutes ces questions, mais croyez bien qu'avant de vous embêter, j'ai cherché sur le net comment procéder et ce que j'ai trouvé ne me donne pas satisfaction ...

J'ai une table ACCESS, remplie.
J'aimerais deux choses :

1- Récupérer dans une variable tous les enregistrements d'un des champs un par un (le premier passage dans la boucle stocke le 1er enregistrement du champ, l'analyse, puis deuxième passage ...

2- Récupérer l'ensemble des enregistrements sur une ligne (donc sur la ligne l'enregistrement de chaque champ)

Ces deux requêtes doivent être très proches j'imagine ^^
Que dois-je utiliser comme code ?
J'ai essayé diverses manip avec "SELECT", mais je dois dire que ça ne donne rien, je ne vois toujours pas comment stocker les valeurs !

Merci beaucoup par avance !

Bonne soirée

6 réponses

nezkikool Messages postés 17 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 10 mai 2010
3 mai 2010 à 15:26
Bonjour,

Je me permets d'insister en remontant mon sujet, je n'ai toujours pas trouvé la solution et ça me bloque. Enfin je continue mon programme avec des variables que je remplis de façon artificielle mais ça ne saurait être que provisoire.

Merci :)

A bientôt
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
3 mai 2010 à 19:18
Bonjour

Réponse au 1
pas besoin de requete
essaie :

dim Menuarray
Set tablerelation = Currentdbclient.OpenRecordset("msysrelationships")
ReDim Menuarray(1 To tablerelation.recordcount)
Tablerelation.movefirst
J=1
Do while j <= tablerelation.recorcount
Menuarray(j) = tablerelation!nom du champ
Tablerelation.movenext
J=j+1
loop

pour le 2 : à plus tard

Bonne journée
0
nezkikool Messages postés 17 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 10 mai 2010
3 mai 2010 à 21:59
Re
Je ne comprends pas bien ce codage :

Menuarray, c'est un tableau (Dim Menuarray () as string) ?
TableRelation, c'est quoi ? une chaine de caractères ?
"msysrelationships" ---> ?? nom de la table ?

merci :)
0
nezkikool Messages postés 17 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 10 mai 2010
3 mai 2010 à 22:11
Voilà le code que j'ai tapé.

Dim Menu() As String
Dim j As Integer
Dim Table As Recordset
Set Table = CurrentDb.OpenRecordset("MaTable")

ReDim Menu(1 To Table.RecordCount)

Table.MoveFirst
j = 1
Do While j <= Table.RecordCount

If Table!Station <> "" Then
Menu(j) = Table!Station
Table.MoveNext
j = j + 1
End If
Loop




Dans le champ que je veux récupérer, il y a des valeurs "null", j'ai un message d'erreur comme quoi "utilisation incorrecte de Null" à la ligne : Menu(j) = Table!Station
Du coup j'ai rajouté le If comme condition. Et là si j'exécute le code, le logiciel se fige, et seul un ctrl+Pause peut le débloquer (et une erreur apparait sur le End If ...)
Qu'est-ce qui ne va pas d'après toi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nezkikool Messages postés 17 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 10 mai 2010
3 mai 2010 à 22:32
Ok c'est bon, j'ai créé une requête préalable qui vire tous les champs "null" :)
J'entame la deuxième partie du problème !!
Merci :)
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
4 mai 2010 à 12:42
Bonjour

Les comme Menuarray etc étaient des exemples.

La boucle est "normal" il fallait sortie le movenext du if

Un champ peut avoir 4 états
renseigné
à rien = ""
vide = empty (par exemple la donnée a été renseignée puis effacée)
null = aucune saisie ou donnée n'a été affectée

bonne journée
0
Rejoignez-nous