Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA-ADO : requete SQL Access 2007

2 réponses
Avatar
FAF
Bonjour,

Dans une macro (VBA), j'utilise la libraire ADO pour me connecter et faire
une requête SQL sur une table d'un base Access 2007.

Le résultat de la requête est surprenant. Le résultat pour certains champs
de ma requête devraient être des chaines de caractères seulement la requête
me retourne des nombres. Pour certains autres champs, le résultat est correct
(cad ce que contient le champ dans la table de la base Access).

Après étude, la différence entre ces deux types champs. Pour le champ
correct est une donnée appartenant à la table, dans l'autre, il s'agit d'un
champ calculé par une requête sur d'autre table.

Pourriez-vous me dire comment faire pour récupérer les valeurs de ces champs
? Dois-je initialiser des propriétés de la table ? Mettre à jour la table ?

Merci pour vos explications et exemples que vous pourriez me fournir.

En attente de votre aide, bonne journée

2 réponses

Avatar
3stone
Salut,

Il serait plus simple de dire ce que tu fais et comment...

Le caractère surprenant du résultat doit plutôt provenir
de ta manière de faire ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



FAF wrote:
Dans une macro (VBA), j'utilise la libraire ADO pour me connecter et
faire une requête SQL sur une table d'un base Access 2007.

Le résultat de la requête est surprenant. Le résultat pour certains
champs de ma requête devraient être des chaines de caractères
seulement la requête me retourne des nombres. Pour certains autres
champs, le résultat est correct (cad ce que contient le champ dans la
table de la base Access).

Après étude, la différence entre ces deux types champs. Pour le champ
correct est une donnée appartenant à la table, dans l'autre, il
s'agit d'un champ calculé par une requête sur d'autre table.

Pourriez-vous me dire comment faire pour récupérer les valeurs de ces
champs ? Dois-je initialiser des propriétés de la table ? Mettre à
jour la table ?

Merci pour vos explications et exemples que vous pourriez me fournir.

En attente de votre aide, bonne journée


Avatar
FAF
Bonjour Pierre,

Merci voivi le code en question :

' open connection
Set Cnxn = CreateObject("ADODB.Connection")
strCnxn = "Provider=Microsoft.ACE.OLEDB.12.0; Data
Source=C:Database.accdb;Persist Security Infoúlse"

Cnxn.Open strCnxn

' create and open Recordset using object refs
Set rsCustomers = CreateObject("ADODB.Recordset")
strSQLCustomers = "SELECT * FROM Project "

rsCustomers.ActiveConnection = Cnxn
rsCustomers.CursorType = adOpenKeyset
rsCustomers.LockType = 4
rsCustomers.Source = strSQLCustomers
rsCustomers.Open

Do While Not rsCustomers.EOF
MsgBox rsCustomers("Project") & " - " & rsCustomers("Customer")
rsCustomers.MoveNext
Loop

Pourriez-vous m'aider ?



"3stone" a écrit :

Salut,

Il serait plus simple de dire ce que tu fais et comment...

Le caractère surprenant du résultat doit plutôt provenir
de ta manière de faire ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



FAF wrote:
> Dans une macro (VBA), j'utilise la libraire ADO pour me connecter et
> faire une requête SQL sur une table d'un base Access 2007.
>
> Le résultat de la requête est surprenant. Le résultat pour certains
> champs de ma requête devraient être des chaines de caractères
> seulement la requête me retourne des nombres. Pour certains autres
> champs, le résultat est correct (cad ce que contient le champ dans la
> table de la base Access).
>
> Après étude, la différence entre ces deux types champs. Pour le champ
> correct est une donnée appartenant à la table, dans l'autre, il
> s'agit d'un champ calculé par une requête sur d'autre table.
>
> Pourriez-vous me dire comment faire pour récupérer les valeurs de ces
> champs ? Dois-je initialiser des propriétés de la table ? Mettre à
> jour la table ?
>
> Merci pour vos explications et exemples que vous pourriez me fournir.
>
> En attente de votre aide, bonne journée

.