OVH Cloud OVH Cloud

Parcourir

30 réponses
Avatar
Raph
Bonjour =E0 tous,

j'ai une table avec un seul champ et plusieurs=20
enregistrements (mettons table1), et une autre table=20
(table2) avec plusieurs champs et pusieurs enregistrements.

Je voudrais savoir s'il est possible de v=E9rifier si les=20
contenus pr=E9sents dans le champ de la table 1 existent=20
dans n'importe quel champ de la table 2.

En gros, tester si toutes les valeurs dans la table 1 sont=20
des valeurs qui existent quelquepart dans la table2...

Merci d'avance pour vos r=E9ponses

Raph

10 réponses

1 2 3
Avatar
Jessy Sempere [MVP]
Heureusement qu'il reste des jeunots pour utiliser les anciennes versions
telle qu'Access 97 voir Access 2 ... ;-))))

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Raymond [mvp]" a écrit dans le message news:
##
tu sais bien que toute procédure qui fonctionne est toujours top. je
regarderai que pour te critiquer. Comme j'ai dit à Jessy, Pierre est en
vacances et j'ai les ordres pour surveiller les jeunots !

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
"Raymond [mvp]" écrivait
news:#:

Bonjour.

Certainement tordu oui.
Eric a travaillé sur la requête je pense qu'il va se manifester
rapidement sinon je reprendrai le flambeau.



Bonjour Raymond,

Je viens de lui envoyer ma moulinette. C'est une procédure avec pour
argument le nom de la table à vérifier. Ca me parait plus simple que le
sql

et plus facile à automatiser pour n tables.

Je vais lui donner un exemple du sql que j'avais fait - figé pour une
table

- *en m'inspirant de ton envoi* mais je trouve le code lourd à adapter
pour

passer en argument le nom des tables.

Si ma proc ne te parait pas top, n'hésites pas à me le dire.

A+
Eric







Avatar
Eric
J'enfonce le clou, j'ai même récupéré Access 1.0 (8 D7 avec Install ODBC)-
1992- pour un posteur qui ne s'est plus jamais manifesté d'ailleurs.

Eric



"Jessy Sempere [MVP]" écrivait
news:cciu5p$ce5$:

Heureusement qu'il reste des jeunots pour utiliser les anciennes
versions telle qu'Access 97 voir Access 2 ... ;-))))

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


Avatar
Raymond [mvp]
Nous, on a eu le courage de se recycler et de suivre l'évolution du monde
moderne, malgré tout ce que ça nous en coûte.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message de
news:cciu5p$ce5$
Heureusement qu'il reste des jeunots pour utiliser les anciennes versions
telle qu'Access 97 voir Access 2 ... ;-))))

--
@+
Jessy Sempere - Access MVP


Avatar
Jessy Sempere [MVP]
Et oui et tu as toute mon admiration vu ton grand age... hi hi hi ;-)))))

Blague à part, c'est pas que je veux pas me recycler mais en gros je ne
fais jamais de PC chez moi, tout ce que je fais, donc tout ce que je sais...
c'est au boulot et comme toutes la boîte et sous Office 97, il faut bien
faire avec ce qu'on a...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Raymond [mvp]" a écrit dans le message news:

Nous, on a eu le courage de se recycler et de suivre l'évolution du monde
moderne, malgré tout ce que ça nous en coûte.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message de
news:cciu5p$ce5$
Heureusement qu'il reste des jeunots pour utiliser les anciennes versions
telle qu'Access 97 voir Access 2 ... ;-))))

--
@+
Jessy Sempere - Access MVP






Avatar
RAph
Ecoutez Eric et Raymond,

je sais pas quoi vous dire si ce n'est "merci" !!

Je tente tout ça et je vous tiens au courant ;o))

A plus

Raph
Avatar
Raymond [mvp]
Tu sais bien qu'on va te plaisanter encore longtemps avec ça, comme les
trains d'ailleurs.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message de
news:ccivlt$d7f$
Et oui et tu as toute mon admiration vu ton grand age... hi hi hi ;-)))))

Blague à part, c'est pas que je veux pas me recycler mais en gros je ne
fais jamais de PC chez moi, tout ce que je fais, donc tout ce que je
sais...

c'est au boulot et comme toutes la boîte et sous Office 97, il faut bien
faire avec ce qu'on a...

--
@+
Jessy Sempere - Access MVP


Avatar
Raymond [mvp]
Je trouve qu'elle est très bien cette petite procédure.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
Bonjour Raph,

Je te fais passer une procédure "moulinette" qui permet de vérifier la
présence ou non des valeurs d'un champs d'une table dans n'importe quel
champs d'une autre table. Cette procédure a un argument : le nom de la
table dans laquelle on fait la recherche. A la sortie une msgbox indique
les valeurs non présentes dans la table.
Donc il suffit de relancer la proc pour autant de tables à vérifier,
voire en l'adaptant un peu, automatiser pour n tables.

Dans cet exemple, j'ai supposé que Table1 n'avait qu'un seul champ, c'est
pourquoi j'utilise rs1.Fields(0). Si dans cette table tu as plusieurs
champs, adaptes l'indice - si ton champ categorie est le 4eme, ca donnera
rs1.Fields(3)

Il faut charger la rérérence Microsoft DAO 3.x Object Library

A mettre dans un module standard.
Appel par :
VerifPresence "NomTableAVerifier"
ou
Call VerifPresence("NomTableAVerifier")

Sub VerifPresence(NomTable As String)
' NomTable désigne la table à vérifier
' NomTable contient n champs
Dim bd As DAO.Database, Tableau()
Dim rs1 As DAO.Recordset, rs2 As DAO.Recordset
Dim I As Long, J As Long, K As Long
Dim Rows As Long, Cols As Long
Dim tmpArray, Existe As Boolean
Dim msg As String
Set bd = CurrentDb
' table1 : table dont on veut s'assurer que les valeurs
' d'un champs sont présentes dans l'autre table
Set rs1 = bd.OpenRecordset("Table1") ' table1 - 1 champs
Set rs2 = bd.OpenRecordset(NomTable) ' table2 - n champs
rs2.MoveLast: rs2.MoveFirst
Rows = rs2.RecordCount ' nb d'enregistrements
Cols = rs2.Fields.Count ' nb de champs
tmpArray = rs2.GetRows(Rows) ' on récupère le jeu de table2
rs2.Close
Set rs2 = Nothing
While Not rs1.EOF
Existe = False
For J = 0 To Rows - 1
For I = 0 To Cols - 1
If rs1.Fields(0) = tmpArray(I, J) Then
Existe = True
Exit For
End If
Next I
If Existe Then
'l'élément a été trouvé sur une ligne
'inutile de vérifier sa présence sur les autres
Exit For
End If
Next J
If Not Existe Then
' on stocke l'élément
ReDim Preserve Tableau(K)
Tableau(K) = rs1.Fields(0)
K = K + 1
End If
rs1.MoveNext
Wend
rs1.Close
Set rs1 = Nothing
bd.Close: Set bd = Nothing
' Affichage des éléments non trouvés dans NomTable
msg = "Les éléments suivants sont absents" & vbCrLf
msg = msg & "de la table " & NomTable & vbCrLf
For I = 0 To K - 1
msg = msg & vbTab & " - " & Tableau(I) & vbCrLf
Next I
MsgBox msg, vbInformation
Erase Tableau
End Sub

Voila, si ca peut te dépanner.

A+
Eric


Avatar
Eric
"Raymond [mvp]" écrivait news:eMzTl0MZEHA.3132
@TK2MSFTNGP10.phx.gbl:

Je trouve qu'elle est très bien cette petite procédure.



Merci Raymond, je vois que tu as pris le temps de la "parcourir" ;-)))

Eric

Avatar
Raph
Salut,

cette fois c'est bon, j'ai testé, j'ai adapté et ça marche
du tonnerre !!

J'ai plus qu'à vous remercier encore une fois de
l'attention portée et du temps passé...

Je crains ne jamais pouvoir vous rendre la pareille
concernant ACCESS : c'est désolant ;o))

A plus Eric et Raymond

Raph
Avatar
Eric
re,

mais non mais non, tout le plaisir a été pour nous.

A+
Eric

"Raph" écrivait news:2862f01c464ea
$ad650460$:


Salut,

cette fois c'est bon, j'ai testé, j'ai adapté et ça marche
du tonnerre !!

J'ai plus qu'à vous remercier encore une fois de
l'attention portée et du temps passé...

Je crains ne jamais pouvoir vous rendre la pareille
concernant ACCESS : c'est désolant ;o))

A plus Eric et Raymond

Raph



1 2 3