Access comp° champ / valeurs dattributs table
Résolu/Fermé
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
-
26 oct. 2007 à 10:42
ankatsoun - 8 mai 2008 à 15:55
ankatsoun - 8 mai 2008 à 15:55
A voir également:
- Access comp° champ / valeurs dattributs table
- Table ascii - Guide
- Table des matières word - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide - Forum Excel
- Access appdata - Guide
- Table des annexes word ✓ - Forum Word
20 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 10:50
26 oct. 2007 à 10:50
Salut,
Si j'ai bien compris tu veux vérifier si une donnée saisie dans un champ existe dans une table ?
Si j'ai bien compris tu veux vérifier si une donnée saisie dans un champ existe dans une table ?
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
4
26 oct. 2007 à 11:11
26 oct. 2007 à 11:11
oui, exactement
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 11:47
26 oct. 2007 à 11:47
Peux tu coller ton code ici, stp
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
4
26 oct. 2007 à 12:57
26 oct. 2007 à 12:57
Private Sub Véhicule_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim varX As Variant
varX = DLookup("[id_ Véhicules]", "[VehiculeAntoine]", "[plus_fabriqué]= True")
MsgBox varX
If (Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule] = varX) Then
MsgBox "condition 1 ok"
End If
If (Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![iCoefVehicule].Value <> "") Then
MsgBox "condition 2 ok"
End If
If (Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule].Value = "") And (Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![iCoefVehicule].Value <> "") Then
MsgBox "condition 1 & 2 ok"
'Forms![Form Modification des Lignes]!Commande234.SetFocus
'Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule].Enabled = False
'MsgBox "Attention, véhicule masqué car plus fabriqué, pas de modification possible"
End If
End Sub
Dim varX As Variant
varX = DLookup("[id_ Véhicules]", "[VehiculeAntoine]", "[plus_fabriqué]= True")
MsgBox varX
If (Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule] = varX) Then
MsgBox "condition 1 ok"
End If
If (Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![iCoefVehicule].Value <> "") Then
MsgBox "condition 2 ok"
End If
If (Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule].Value = "") And (Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![iCoefVehicule].Value <> "") Then
MsgBox "condition 1 & 2 ok"
'Forms![Form Modification des Lignes]!Commande234.SetFocus
'Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule].Enabled = False
'MsgBox "Attention, véhicule masqué car plus fabriqué, pas de modification possible"
End If
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 13:28
26 oct. 2007 à 13:28
Tu travailles directement dans la table ? sans passer par une requête SQL ?
Il est préférable de passer par une requête SELECT et ensuite tester le recordset ...
SELECT * FROM maTable WHERE champDeMaTable = variableAtester
Il est préférable de passer par une requête SELECT et ensuite tester le recordset ...
SELECT * FROM maTable WHERE champDeMaTable = variableAtester
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
4
26 oct. 2007 à 13:35
26 oct. 2007 à 13:35
voici ma requête :
Select VA.[id_ Véhicules]
FROM [Association Fiche caisse] AFC, VehiculeAntoine VA
WHERE AFC.id_véhiculeOpep = VA.[id_ Véhicules]
AND VA.plus_fabriqué= True;
Mai voila, j'ai pas réussi à l'utiliser correctement dans le code....
Select VA.[id_ Véhicules]
FROM [Association Fiche caisse] AFC, VehiculeAntoine VA
WHERE AFC.id_véhiculeOpep = VA.[id_ Véhicules]
AND VA.plus_fabriqué= True;
Mai voila, j'ai pas réussi à l'utiliser correctement dans le code....
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
4
26 oct. 2007 à 16:29
26 oct. 2007 à 16:29
Dim varX As Variant
Dim base As Database
Dim rs As Recordset
Dim requete As String
requete = "Select VA.[id_ Véhicules] FROM [Association Fiche caisse] AFC, VehiculeAntoine VA WHERE AFC.id_véhiculeOpep = VA.[id_ Véhicules] AND VA.plus_fabriqué= True;"
Set base = CurrentDb
Set rs = base.OpenRecordset(requete, dbDynaset)
rep = rs![id_véhicule]
MsgBox rep
Si je code ca, ca marche pas, je vois pas pourquoi! vous voyez vous?
Dim base As Database
Dim rs As Recordset
Dim requete As String
requete = "Select VA.[id_ Véhicules] FROM [Association Fiche caisse] AFC, VehiculeAntoine VA WHERE AFC.id_véhiculeOpep = VA.[id_ Véhicules] AND VA.plus_fabriqué= True;"
Set base = CurrentDb
Set rs = base.OpenRecordset(requete, dbDynaset)
rep = rs![id_véhicule]
MsgBox rep
Si je code ca, ca marche pas, je vois pas pourquoi! vous voyez vous?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 16:32
26 oct. 2007 à 16:32
il y a t il un message d'erreur ?
Avez vous des points d'arret pour tester les variables ?
Avez vous des points d'arret pour tester les variables ?
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
4
26 oct. 2007 à 16:34
26 oct. 2007 à 16:34
Erreur d'exécution '3001':
Argument non valide.
Argument non valide.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 20:03
26 oct. 2007 à 20:03
dsl de répondre si tard mais j'étais occupé:
Voilà ce que j'ai trouvé sur l'erreur 3001 sur le site : https://support.microsoft.com/fr-fr/help/202955
Symptômes
Vous filtrez quand un jeu d'enregistrements pour un champ caractère qui contient plus de un guillemet simple par exemple CompanyName = Pub d'O'Riley l'un des messages d'erreur suivants s'affiche :
Erreur d'exécution "3001" Arguments ne sont pas le bon type, sont hors des limites acceptables ou sont en conflit avec la une d'autre.
-ou--
Erreur d'exécution "-2147024809 (80070057)" : le paramètre est incorrect.
Il y a peut être un champ avec un guillemet simple ...
Voilà ce que j'ai trouvé sur l'erreur 3001 sur le site : https://support.microsoft.com/fr-fr/help/202955
Symptômes
Vous filtrez quand un jeu d'enregistrements pour un champ caractère qui contient plus de un guillemet simple par exemple CompanyName = Pub d'O'Riley l'un des messages d'erreur suivants s'affiche :
Erreur d'exécution "3001" Arguments ne sont pas le bon type, sont hors des limites acceptables ou sont en conflit avec la une d'autre.
-ou--
Erreur d'exécution "-2147024809 (80070057)" : le paramètre est incorrect.
Il y a peut être un champ avec un guillemet simple ...
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
4
8 nov. 2007 à 14:13
8 nov. 2007 à 14:13
Re
je suis à la recherche d'un nouveau moyen me permettant d'aboutir et je tombe sur un problème :
J'ai un champs (une liste déroulante en fait, mais qui ne me sert que pour le rajout de nouveau élément...). Ce champ possédant une source controle, soit : id_véhiculeOpep (mais bon, peu importe le non), avec une origine source : Table/Requête et un contenu :
SELECT DISTINCTROW VehiculeAntoine.[id_ Véhicules], VehiculeAntoine.cNomVéhicule FROM VehiculeAntoine WHERE VehiculeAntoine.plus_fabriqué=False ORDER BY VehiculeAntoine.cNomVéhicule;
Mon problème est celui ci : POURQUOI, quand VéhiculeAntoine.plus_fabriqué=False ( la case de la liste étant donc vide), SI je demande d'afficher la valeur du champ (case), et bien, il me donne un résultat non vide (qui n'est ni plus que id_véhiculeOpep??????
(affichage : MsgBox Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule].Value )
Ou alors, COMMENT puis-je faire pour que, quand VéhiculeAntoine.plus_fabriqué=False, alors ma case est entièrement vide, SANS valeur!!??????
Merci pour l'attention portée.
je suis à la recherche d'un nouveau moyen me permettant d'aboutir et je tombe sur un problème :
J'ai un champs (une liste déroulante en fait, mais qui ne me sert que pour le rajout de nouveau élément...). Ce champ possédant une source controle, soit : id_véhiculeOpep (mais bon, peu importe le non), avec une origine source : Table/Requête et un contenu :
SELECT DISTINCTROW VehiculeAntoine.[id_ Véhicules], VehiculeAntoine.cNomVéhicule FROM VehiculeAntoine WHERE VehiculeAntoine.plus_fabriqué=False ORDER BY VehiculeAntoine.cNomVéhicule;
Mon problème est celui ci : POURQUOI, quand VéhiculeAntoine.plus_fabriqué=False ( la case de la liste étant donc vide), SI je demande d'afficher la valeur du champ (case), et bien, il me donne un résultat non vide (qui n'est ni plus que id_véhiculeOpep??????
(affichage : MsgBox Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule].Value )
Ou alors, COMMENT puis-je faire pour que, quand VéhiculeAntoine.plus_fabriqué=False, alors ma case est entièrement vide, SANS valeur!!??????
Merci pour l'attention portée.
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
4
8 nov. 2007 à 15:23
8 nov. 2007 à 15:23
Bon, je viens de voir que le problème venait directement de la table :
elle possède une colonne dans la quelle, en affichant, je vois une chaine de type XXX-YYY-(...) alors que finalement, quand je fais dse tests dessus ( exemple, choix des lignes dont l'attributs commence par 'X' ca marche pas(pourtant yen a) mais la même chose avec '1' ca marche(pourtant yen a pas de visible, la table doit être une liaison ou dans ce genre là, j'ai du mal à suivre, d'autant que toute la base n'a pas été développé par ma personne), il s'avère qu'il y a des valeurs derrières (autre attribut d'une autre table), heu, j'suis perdu là, quelqu'un pourrez m'expliquer un peu?
elle possède une colonne dans la quelle, en affichant, je vois une chaine de type XXX-YYY-(...) alors que finalement, quand je fais dse tests dessus ( exemple, choix des lignes dont l'attributs commence par 'X' ca marche pas(pourtant yen a) mais la même chose avec '1' ca marche(pourtant yen a pas de visible, la table doit être une liaison ou dans ce genre là, j'ai du mal à suivre, d'autant que toute la base n'a pas été développé par ma personne), il s'avère qu'il y a des valeurs derrières (autre attribut d'une autre table), heu, j'suis perdu là, quelqu'un pourrez m'expliquer un peu?
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
4
8 nov. 2007 à 16:14
8 nov. 2007 à 16:14
Passons, il faudrait juste que je sache comment, à partir d'une requête comment tester si un champ est égal à une des valeurs d'un attribut dans la table!
Quelqu'un aurrait un petit exemple à me montrer?
Quelqu'un aurrait un petit exemple à me montrer?
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
4
9 nov. 2007 à 08:52
9 nov. 2007 à 08:52
Dim truc As Integer
Dim rep As String
Dim varX As Variant
Dim base As Database
Dim RS As Recordset
Dim requete As String
requete = "Select VA.[id_ Véhicules] FROM [Association Fiche caisse] AFC, VehiculeAntoine VA WHERE AFC.id_véhiculeOpep = VA.[id_ Véhicules]; "
Set base = CurrentDb
Set RS = base.OpenRecordset(requete, dbOpenDynaset)
RS.MoveLast
truc = RS.RecordCount
RS.MoveFirst
For cpt = 0 To 5 'RS.RecordCount - 1
MsgBox RS(cpt)
''''RS.MoveNext
Next cpt
Quand j'effectue cette boucle, il m'affiche la première valeur avant d'aboutir à une erreur du type : '3265, élément non trouvé dans cette collection'.
Une idée sur mon problème?
Dim rep As String
Dim varX As Variant
Dim base As Database
Dim RS As Recordset
Dim requete As String
requete = "Select VA.[id_ Véhicules] FROM [Association Fiche caisse] AFC, VehiculeAntoine VA WHERE AFC.id_véhiculeOpep = VA.[id_ Véhicules]; "
Set base = CurrentDb
Set RS = base.OpenRecordset(requete, dbOpenDynaset)
RS.MoveLast
truc = RS.RecordCount
RS.MoveFirst
For cpt = 0 To 5 'RS.RecordCount - 1
MsgBox RS(cpt)
''''RS.MoveNext
Next cpt
Quand j'effectue cette boucle, il m'affiche la première valeur avant d'aboutir à une erreur du type : '3265, élément non trouvé dans cette collection'.
Une idée sur mon problème?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
9 nov. 2007 à 09:26
9 nov. 2007 à 09:26
Bonjour
C'est normal ta boucle : For cpt = 0 to 5 ... 1) la syntaxe n'est pas bonne : RS.Fields(cpt) ... 2) Tu n'as qu'un champ dans ta requête donc tu lis bien le champ(0) mais le champ(1) n'existant pas, le programme lève une exception.
Pour lire le recordset il faut une boucle type while ...
...
While Not RS.EOF
MsgBox RS.Fields(0).Value
Wend
...
D'autre part :
// RS.MoveLast 'Inutile pour l'instruction suivante
truc = RS.RecordCount
// RS.MoveFirst 'Doit être placer placer juste après l'envoie de la requête pour se placer sur le premier enregistrement.
Bon courage
;o)
Polux
C'est normal ta boucle : For cpt = 0 to 5 ... 1) la syntaxe n'est pas bonne : RS.Fields(cpt) ... 2) Tu n'as qu'un champ dans ta requête donc tu lis bien le champ(0) mais le champ(1) n'existant pas, le programme lève une exception.
Pour lire le recordset il faut une boucle type while ...
...
While Not RS.EOF
MsgBox RS.Fields(0).Value
Wend
...
D'autre part :
// RS.MoveLast 'Inutile pour l'instruction suivante
truc = RS.RecordCount
// RS.MoveFirst 'Doit être placer placer juste après l'envoie de la requête pour se placer sur le premier enregistrement.
Bon courage
;o)
Polux
starnours
Messages postés
48
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
27 juillet 2009
4
9 nov. 2007 à 10:31
9 nov. 2007 à 10:31
c'est bon, ca marche , et parfaitement en plus! merci
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
9 nov. 2007 à 11:35
9 nov. 2007 à 11:35
De rien, c'est avec plaisir ...
;o)
Polux
;o)
Polux
Bjr à tous,
je n'arrive pa à afficher la valeur (contenue dans une autre table access) correspondante à celle saisie par l'utilisateur; en fait je veux utiliser l'événement "sur perte focus" du champ précédent et la valeur correspondante à celle saisie sera affichée dans le prochain champs
il y a évidemment liaison entre les tables
comment procéder?
je n'arrive pa à afficher la valeur (contenue dans une autre table access) correspondante à celle saisie par l'utilisateur; en fait je veux utiliser l'événement "sur perte focus" du champ précédent et la valeur correspondante à celle saisie sera affichée dans le prochain champs
il y a évidemment liaison entre les tables
comment procéder?