Merci pour cette intervention.
Comme je l'ai dit un plus avant, je suis retournée à l'ancien code avec dim recfindfirst, ne comprenant pas trop le code de Dmoup.
Je vais donc essayer d'exploiter ce que tu me donnes et te tiens au courant
Version imprimable
Merci pour cette intervention.
Comme je l'ai dit un plus avant, je suis retournée à l'ancien code avec dim recfindfirst, ne comprenant pas trop le code de Dmoup.
Je vais donc essayer d'exploiter ce que tu me donnes et te tiens au courant
J'ai essayé le code et ça bug sur ledeCode:.EXECUTE
"fonction ou variable attendue"Code:Set req = CurrentDb().Execute("SELECT count (Réfdossier) FROM ANNONCES WHERE Réfdossier = """ & Me.Texte63 & """")
Ne comprenant pas du tout la syntaxe, je suis incapable de m'aider ...
essais
plutôt que le count()Code:SELECT Réfdossier ...
Chose faite à l'instant mais toujours le probl de .EXECUTE
Au fait, la valeur saisie dans Texte63 est de type numérique...pour info
Du coup, je m'enlise avec tous les codes, voici le dernier en date :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Private Sub Commande62_Click() If Me.quickseak.Value = 0 Then MsgBox "Veuillez sélectionner un critère de recherche", vbInformation + vbOKOnly, "AVERTISSEMENT" Else If IsNull(Me.Texte63.Value) = True Then MsgBox "Veuillez saisir une référence.", vbInformation + vbOKOnly, "AVERTISSEMENT" Else Form_HOME.ACTUALISATION.Visible = True Form_HOME.ACTUALISATION.SetFocus Form_HOME.MENU.Visible = False Dim req As Recordset If Me.quickseak = 1 Then Set req = CurrentDb().Execute("SELECT Réfdossier FROM ANNONCES WHERE Réfdossier = """ & Me.Texte63 & """") If req.RecordCount > 0 Then mcri = "Réfdossier = ""*" & Me.Texte63 & "*""" Else MsgBox "Référence dossier erronée ou inexistante", vbInformation + vbOKOnly, "AVERTISSEMENT" End If Else Set req = CurrentDb().Execute("SELECT Réfmandat FROM ANNONCES WHERE Réfmandat = """ & Me.Texte63 & """") If req.RecordCount > 0 Then mcri = "Réfmandat = ""*" & Me.Texte63 & "*""" Else MsgBox "Référence mandat erronée ou inexistante", vbInformation + vbOKOnly, "AVERTISSEMENT" End If End If End If End If End If End Sub
Il faut que tu garde un seul code sinon on ne s'en sortira pas.Citation:
Du coup, je m'enlise avec tous les codes, voici le dernier en date :
choisi celui sur lequel tu est le plus à laise et on travail que sur celui la.
Le Execute s'applique au requête action. Il faut plutot utilise iciCitation:
Set req = CurrentDb().Execute("SELECT Réfdossier...
Code:
1
2 Set req = CurrentDb().OpenRecordSet("SELECT Réfdossier
Bon à savoir pour la suite.Citation:
la valeur saisie dans Texte63 est de type numérique...pour info
Choisi un code et on continu sur
Je me fie malheureusement à ce qu'on me donne.
C'est vous qui connaissez mieux. Moi, je ne suis à l'aise avec aucun, je les découvre et apprends à les décortiquer pour m'en servir seule ultérieurement :lol:
J'essaie ce que tu viens de me donner et te dis ça de suite.
Débogage : erreur 3464
"type de données incompatible dans l'expression du critère".
sur
Code:Set req = CurrentDb().OpenRecordset("SELECT Réfdossier FROM ANNONCES WHERE Réfdossier = """ & Me.Texte63 & """")
c'est normal. Avec un champ numérique tu n'as pas besoin de tous c'est "
Il faut savoir ce que tu fais avec le recordset maintenant.Code:Set req = CurrentDb().OpenRecordset("SELECT Réfdossier FROM ANNONCES WHERE Réfdossier = " & Me.Texte63 & "")
Pourtant le FindFirst c'est bien toi non?Citation:
Moi, je ne suis à l'aise avec aucun,
Mais au fait après la recherche tu ouvre un autre formulaire ou est ce que tu veux voir le résultat de la recherche sur le formulaire actif?
Merci pour ce petit goût moralisateur.
Le findfirst n'est pas de moi, je suis incapable de sortir de tels codes.
On m'aide, je décortique, essaye de comprendre et ensuite reproduis quand la situation le demande.
En enlevant les guilletmets en trop j'ai mes mesgbx mais j'ouvre quand même le form ACTUALISATION. Lebut étant de rester sur le MENU.
J'ai donc essayé de placer
aprèsCode:
1
2 Form_HOME.ACTUALISATION.Visible = False Form_HOME.MENU.Visible = True
mais.........Code:
1
2 Else MsgBox "Référence dossier erronée ou inexistante", vbInformation + vbOKOnly, "AVERTISSEMENT"
En plus le SELECT ne fonctionne pas. Quand je sélectionne un criète puis entre un chiffre existant, ça m'ouvre le form sur mon premier enregistrement et non sur la référence dossier.
Désolée, je voulais dire que vu que mon groupe d'option se trouve sur l'onglet MENU (là où je select les criètère et entre une référence), je ne dois pas basculer sur l'onglet actualisation si la valeur saisie n'est pas bonne.
Je reste sur menu.
Toutes mes excuses pour le ".execute", j'suis aller trop vite :roll:
Le mieux dans ton cas ne serait-il pas de n'afficher les onglets qu'une fois que toutes les conditions sont remplies??
Oui ! Justement.
Je t'avoue que je ne sais plus où donner de la tête là.
1- rien n'est coché = msgbx du critere, ça c'est OK
2- 1 critère coché mais pas de valeur saisie => msgbx de la référence, ça c'est Ok aussi
3- Tout coché OK avec référence saisie valide, => aucun msgbx et ouverture sur ref validée. Actuellement ce n'est pas le cas; bug sur incompatibilité de type, sur ce que j'ai en gras (erreur 13) et ça n'ouvre pas sur la ref souhaitée
4- 1 critère coché mais une référence inexistante ou erronée => msgbx erroné et on reste sur la page de recherche. Ce n'est pas le cas non plus. J'ai mon message mais ouverture quand même du form.
Le code
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Private Sub Commande62_Click() If Me.quickseak.Value = 0 Then MsgBox "Veuillez sélectionner un critère de recherche", vbInformation + vbOKOnly, "AVERTISSEMENT" Else If IsNull(Me.Texte63.Value) = True Then MsgBox "Veuillez saisir une référence.", vbInformation + vbOKOnly, "AVERTISSEMENT" Else Form_HOME.ACTUALISATION.Visible = True Form_HOME.ACTUALISATION.SetFocus Form_HOME.MENU.Visible = False Dim req As Recordset If Me.quickseak = 1 Then Set req = CurrentDb().OpenRecordset("SELECT Réfdossier FROM ANNONCES WHERE Réfdossier = " & Me.Texte63 & "") If req.RecordCount > 0 Then mcri = "Réfdossier = " * " & Me.Texte63 & " * "" Else MsgBox "Référence dossier erronée ou inexistante", vbInformation + vbOKOnly, "AVERTISSEMENT" End If Else Set req = CurrentDb().OpenRecordset("SELECT Réfmandat FROM ANNONCES WHERE Réfmandat = " & Me.Texte63 & "") If req.RecordCount > 0 Then mcri = "Réfmandat = " * " & Me.Texte63 & " * "" Else MsgBox "Référence mandat erronée ou inexistante", vbInformation + vbOKOnly, "AVERTISSEMENT" End If End If End If End If End Sub
Désolée mais je ne m'en sors pas
Désolée mais je ne m'en sors pas
Désolé, je réagit tard, mais remplace:
parCode:mcri = "Réfdossier = " * " & Me.Texte63 & " * ""
Regarde le nombre de double-cotes et les espaces ;)Code:mcri = "Réfdossier = ""*" & Me.Texte63 & "*"""
idem pour Réfmandat.
Bonjour 6ril.
Ce que tu me demandes, je l'ai déjà fait et rien à faire. Ne te fie pas au dernier code posté car entre temps j'ai retravailler dessus, et notamment les quotes.
Voilà ce que j'ai à l'instant T
Je me demande si ça ne vient pas du SELECT, car quand mes références sont correctes, ça m'ouvre l'oglet ACTUALISATION mais pas sur les bons enregistrements. Quand tu m'as suggéré le SELECT, dans le "FROM TaTable", j'ai mis FROM ANNONCES qui est la table qui contient réfdossier et réfmandat. Cette table est à l'origine du formulaire ACTU qui est placé dans l'ONGLET ACTUALISATION de ma base en tant que sous-formulaire...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Private Sub Commande62_Click() If Me.quickseak.Value = 0 Then MsgBox "Veuillez sélectionner un critère de recherche", vbInformation + vbOKOnly, "AVERTISSEMENT" Else If IsNull(Me.Texte63.Value) = True Then MsgBox "Veuillez saisir une référence.", vbInformation + vbOKOnly, "AVERTISSEMENT" Else Form_HOME.ACTUALISATION.Visible = True Form_HOME.ACTUALISATION.SetFocus Form_HOME.MENU.Visible = False Dim req As Recordset If Me.quickseak = 1 Then Set req = CurrentDb().OpenRecordset("SELECT Réfdossier FROM ANNONCES WHERE Réfdossier = " & Me.Texte63 & "") If req.RecordCount > 0 Then mcri = "Réfdossier = ""*" & Me.Texte63 & "*""" Else MsgBox "Référence dossier erronée ou inexistante", vbInformation + vbOKOnly, "AVERTISSEMENT" End If Else Set req = CurrentDb().OpenRecordset("SELECT Réfmandat FROM ANNONCES WHERE Réfmandat = " & Me.Texte63 & "") If req.RecordCount > 0 Then mcri = "Réfmandat = ""*" & Me.Texte63 & "*""" Else MsgBox "Référence mandat erronée ou inexistante", vbInformation + vbOKOnly, "AVERTISSEMENT" End If End If End If End If End Sub
Le problème ne viendrait-il pas de là ?
Le problème c'est le critère. tu as dis que RéfDossier est de type numérique donc il faut faire
J'avais donné un exemple au cas où on aurait des type texte avec l'utilisation de like suivi des étoiles. mais dans ton cas cela ne s'applique pas.Code:
1
2mcri = "Réfdossier = " & Me.Texte63
Pour ce qui est de
il ta suffisait juste de remplacer Me.Texte63 par une valeur quelconque pour te rendre compte que le critère que tu crée ne peut marcher dans aucune situation à moins que tu n'est des valeurs de type *valeure* dans tes champs.Citation:
mcri = "Réfdossier = ""*" & Me.Texte63 & "*"""
Code:
1
2
3
4
5 si Texte63=18 mcri = "Réfdossier = ""*" & Me.Texte63 & "*""" vaudrait mcri="RéfDossier= * 18 *"
[QUOTE=DMboup;3710147]Le problème c'est le critère. tu as dis que RéfDossier est de type numérique donc il faut faire
Bonsoir,Code:
1
2mcri = "Réfdossier = " & Me.Texte63
Je suis au regret de t'annoncer que cela ne marche pas "erreur de syntaxe".
J'ai tout essayé en ce qui concerne les quotes.
Mon souci est que cela n'ouvre pas sur la référence entrée dans la zone de texte quand cette réf est correcte. Et quand elle ne l'est pas, j'ai bien mon msgbx d'erreur mais ça m'ouvre quand même l'onglet où il y a le form concerné.
Je pense vraiment qu'il s'agit d'un problème de requête, mais je peux me tromper
Salut
Peut-être faut-il réactualiser avec la méthode docmd.requery
Je dis ca, je dis rien!