OVH Cloud OVH Cloud

pb ouverture formulaire

4 réponses
Avatar
sam
Bonjour,
J'ai un petit problème que je n'arrive pas à résoudre.

Dans mon premier formulaire, j'ai un champ qui récupère le nom de la
machine sur laquelle tourne la base (Stocké dans Texte4). Je teste si la
machine est déjà répertorié dans ma table grâce a la requête
T_Test_du_Parc Requête. Si la machine n'est pas référencée, tout se
passe bien, un formulaire vierge se lance et l'utilisateur remplis ses
champs. Mais si la machine est déjà référencée, il ouvre un
formulaire avec le champ machine rempli, mais me crée une nouvelle
entrée dans ma base, au lieu de me sortir ma fiche déjà remplie.
Quelqu'un voit il le problème, car la, je sèche.

Merci

If DCount("*", "T_Test_du_Parc Requête") = 1 Then ' la machine est dans
la liste => j'ouvre la page de la machine
Dim stLinkCriteria As String
stLinkCriteria = "[Nom_machine]= '" & Me![Texte4] & "'"
DoCmd.OpenForm "F_Test", , , stLinkCriteria

' la machine est pas référencée, création d'un nouveau formulaire
Else
DoCmd.OpenForm "F_Test", acNormal, "", "", acEdit, acNormal
DoCmd.GoToRecord acActiveDataObject, , acNewRec
End If

4 réponses

Avatar
3stone
Salut,

sam
Dans mon premier formulaire, j'ai un champ qui récupère le nom de la
machine sur laquelle tourne la base (Stocké dans Texte4). Je teste si la
machine est déjà répertorié dans ma table grâce a la requête
T_Test_du_Parc Requête. Si la machine n'est pas référencée, tout se
passe bien, un formulaire vierge se lance et l'utilisateur remplis ses
champs. Mais si la machine est déjà référencée, il ouvre un
formulaire avec le champ machine rempli, mais me crée une nouvelle
entrée dans ma base, au lieu de me sortir ma fiche déjà remplie.



Par prudence, écris :

If DCount("*", "T_Test_du_Parc Requête") > 0 Then



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
Pierre Jagut
Bonsoir,

Si je décortique le fonctionnement logique au démarrage :
- tu as une maco "autoexec" qui lance une fonction VB "Test_Machine"
- Celle-ci récupère le nom de la machine
- Elle vérifie si cette machine est dans la table "T_Parc"
- Si oui, elle ouvre un formulaire (qui fait quoi ?) sur la table "T_Parc"
en filtrant sur cette machine, et le champ "Machine" est pré-rempli (et
verrouillé, voire invisible)
- Si non, elle ouvre un formulaire (de déclaration de machine ?) en mode
création d'enregistrement sur la table "T_Parc", dont le champ "Machine" est
pré-rempli (et verrouillé, voire invisible).

Bon, c'est comme ça que j'aurais fait à peu de chose près.
Maintenant, toi :
- Tu passes par un formulaire intermédiaire qui récupère le nom de la
machine dans un contrôle "Texte4".
- Tu as une requête "T_Test_du_Parc Requête" qui aboutit au nombre
d'enregistrements ayant ce nom de machine (ou quelque chose comme cela ?) et
le met quelque part (où ?).
- Si le résultat de la requête est nul(l), tu ouvres un autre formulaire en
création
- Si le résultat de la requête est non nul(l), tu ouvres un autre formulaire
en mode modification (et pas en création hein ?) en filtrant sur cette
machine.

Si tu fais comme ça, ça devrait marcher également.
Peux-tu expliquer un peu plus ton cheminement pour que l'on essaye de
deviner d'où vient le problème ?

Bon courage ...
Pierre.


"sam" a écrit dans le message de
news:
Bonjour,
J'ai un petit problème que je n'arrive pas à résoudre.

Dans mon premier formulaire, j'ai un champ qui récupère le nom de la
machine sur laquelle tourne la base (Stocké dans Texte4). Je teste si la
machine est déjà répertorié dans ma table grâce a la requête
T_Test_du_Parc Requête. Si la machine n'est pas référencée, tout se
passe bien, un formulaire vierge se lance et l'utilisateur remplis ses
champs. Mais si la machine est déjà référencée, il ouvre un
formulaire avec le champ machine rempli, mais me crée une nouvelle
entrée dans ma base, au lieu de me sortir ma fiche déjà remplie.
Quelqu'un voit il le problème, car la, je sèche.

Merci

If DCount("*", "T_Test_du_Parc Requête") = 1 Then ' la machine est dans
la liste => j'ouvre la page de la machine
Dim stLinkCriteria As String
stLinkCriteria = "[Nom_machine]= '" & Me![Texte4] & "'"
DoCmd.OpenForm "F_Test", , , stLinkCriteria

' la machine est pas référencée, création d'un nouveau formulaire
Else
DoCmd.OpenForm "F_Test", acNormal, "", "", acEdit, acNormal
DoCmd.GoToRecord acActiveDataObject, , acNewRec
End If


Avatar
Jeff
Bonjour

Si tu utilises la même syntaxe dans les deux cas :

If DCount("*", "T_Test_du_Parc Requête") = 1 Then ' la machine est dans la
liste => j'ouvre la page de la machine
Dim stLinkCriteria As String
stLinkCriteria = "[Nom_machine]= '" & Me![Texte4] & "'"
'================= MODIF ===================== DoCmd.OpenForm "F_Test", , , stLinkCriteria, acEdit, acNormal
'============================================= ' la machine est pas référencée, création d'un nouveau formulaire
Else
DoCmd.OpenForm "F_Test", acNormal, "", "", acEdit, acNormal
DoCmd.GoToRecord acActiveDataObject, , acNewRec
End If

Tu peux aussi vérifier si ton formulaire F_TEST autorise les entrées de
données et les modifications

Cordialement

Jeff

Charte du forum: http://users.skynet.be/mpfa/charte.htm

"sam" a écrit dans le message de
news:
Bonjour,
J'ai un petit problème que je n'arrive pas à résoudre.

Dans mon premier formulaire, j'ai un champ qui récupère le nom de la
machine sur laquelle tourne la base (Stocké dans Texte4). Je teste si la
machine est déjà répertorié dans ma table grâce a la requête
T_Test_du_Parc Requête. Si la machine n'est pas référencée, tout se
passe bien, un formulaire vierge se lance et l'utilisateur remplis ses
champs. Mais si la machine est déjà référencée, il ouvre un
formulaire avec le champ machine rempli, mais me crée une nouvelle
entrée dans ma base, au lieu de me sortir ma fiche déjà remplie.
Quelqu'un voit il le problème, car la, je sèche.

Merci

If DCount("*", "T_Test_du_Parc Requête") = 1 Then ' la machine est dans
la liste => j'ouvre la page de la machine
Dim stLinkCriteria As String
stLinkCriteria = "[Nom_machine]= '" & Me![Texte4] & "'"
DoCmd.OpenForm "F_Test", , , stLinkCriteria

' la machine est pas référencée, création d'un nouveau formulaire
Else
DoCmd.OpenForm "F_Test", acNormal, "", "", acEdit, acNormal
DoCmd.GoToRecord acActiveDataObject, , acNewRec
End If


Avatar
sam
Le Wed, 06 Aug 2003 11:32:11 +0200, Jeff a écrit :

Bonjour

Si tu utilises la même syntaxe dans les deux cas :


'================= MODIF ===================== > DoCmd.OpenForm "F_Test", , , stLinkCriteria, acEdit, acNormal
'=============================================

Cordialement

Jeff



parfait, mon erreur etait la, merci