OVH Cloud OVH Cloud

Formulaire taquin...

27 réponses
Avatar
Karim
Bonjour,

J'ai un probl=E8me qui d=E9passe les limites de mon petit=20
intellect, je me permets donc de vous le soumettre...

Mon formulaire modal affiche les donn=E9es de la table=20
Exploitant.
Voici le Form_load... (=E9pur=E9 tant que j'ai pu)


Private Sub Form_Load()
On Error GoTo Err_Form_Load

'D=E9terminer le mode d'ouverture de cette fen=EAtre
If Not IsNull(Me.OpenArgs) Then

sOpenArgs =3D Split(Me.OpenArgs, ";")
=20
If DCount("ExpNum", "Exploitant", "ExpNum=3D'" &=20
sOpenArgs(0) & "'") > 0 Then
'Un exploitant ou annonceur a d=E9j=E0 ce nom
'Je ne veux afficher que lui
Me.RecordSource =3D "SELECT * from Exploitant WHERE=20
Exploitant.ExpNum =3D'" & sOpenArgs(0) & "'"
End If
=20
'Afficher ou cacher les boutons
ShowButtons "NOTINLIST"

'Si le formulaire Dispositif est ouvert, affichage des=20
donn=E9es
ElseIf CurrentProject.AllForms("Dispositif").IsLoaded Then
enregE =3D Forms!Dispositif!ExpNum
enregA =3D Forms!Dispositif!DisAnn
=20
sql =3D ""
If Not IsNull(enregE) Then
sql =3D "'" & enregE & "'"
End If
=20
If Not IsNull(enregA) Then
If IsNull(enregE) Then
sql =3D "'" & enregA & "'"
Else
sql =3D sql & ",'" & enregA & "'"
End If
End If
=20
If sql <> "" Then
'Afficher un ou deux exploitants
sql =3D "select * from Exploitant WHERE=20
Exploitant.ExpNum IN (" & sql & ") AND ExpAct =3D -1"
Me.RecordSource =3D sql
End If
ShowButtons "DISPO"
Else
ShowButtons "PARAM"
End If

Exit_Form_Load:
Exit Sub
Err_Form_Load:
Erreur Me.Name, "Form_Load"
Resume Exit_Form_Load
End Sub


Mon souci, c'est que si je suis dans le cas du ElseIf,=20
tout va bien (mes exploitants sont affich=E9s), mais si je=20
suis dans le cas du If mon recordset est vide...

N'h=E9sitez pas =E0 me contacter si vous voulez des=20
pr=E9cisions sur ce pb... (je sais que ce n'est pas tr=E8s=20
clair)

Merci de votre patience et de votre aide

Karim

10 réponses

1 2 3
Avatar
Raymond [mvp]
10 contre 1 que ça va marcher.

le openargs se détruit selon certaine fonctions utilisées. tu dois
sauvegarder openargs immédiatement dès l'ouverture de ton formulaire.

Private Sub Form_Load()
On Error GoTo Err_Form_Load
Dim X as String
X = Me.OpenArgs ' <===============
après tu ne testes plus et tu n'utilises plus le Openargs mais la variable
X
ça va marcher croise les doigts.



--
@+
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


"Karim" a écrit dans le message de
news:21da01c49a6e$f3d35550$
Bonsoir Raymond,

Oui il y a une valeur dans OpenArgs...

En pas à pas ma requête donne
SELECT * FROM Exploitant WHERE Exploitant.ExpNum='HYPER U'

Et ça normalement ça me renvoie un enregistrement (et non
je ne fais pas de pub pour HYPER U)
Avatar
3stone
"Raymond [mvp]"
10 contre 1 que ça va marcher.



Tenu...

Un gros rouge que Pierrot la bibinne me doit...



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Pierre CFI [mvp]
attends, je reprend ton code
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Karim" a écrit dans le message de news:21eb01c49a6f$72c49630$
Si je fais Me.Recordset.Movefirst pendant le pas à pas,
j'ai une erreur d'exécution:
3021 - Aucun enregistrement en cours...

Qu'est ce que ça veut dire?


-----Message d'origine-----
çà c'est normal, 0 s'il y a des enr -1 si eof ou bof
pour compter il faut le déplacer
movelast et movefirst

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Karim" a écrit dans
le message de news:0ab501c49a6d$5f019af0

$
Oui j'ai fait un pas à pas...

La requête dans le RecordSource est bonne (en faisant un
copier-coller et en l'exécutant, elle me renvoie bien 1
enreg.). Par contre, si je teste
Me.Recordset.RecordCount, il vaut 0.




-----Message d'origine-----
bonjour
mais ExpNum est string ???
si oui, je pense OpenArgs doit l'étre aussi et dans ce
cas on teste plutot <>"" que Null

Tu as fait un pas à pas pour voir la "bouille" des
variables ??


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Karim" a écrit dans
le message de news:0a5401c49a69$4ceb9e50

$
Bonjour,

J'ai un problème qui dépasse les limites de mon petit
intellect, je me permets donc de vous le soumettre...

Mon formulaire modal affiche les données de la table
Exploitant.
Voici le Form_load... (épuré tant que j'ai pu)


Private Sub Form_Load()
On Error GoTo Err_Form_Load

'Déterminer le mode d'ouverture de cette fenêtre
If Not IsNull(Me.OpenArgs) Then

sOpenArgs = Split(Me.OpenArgs, ";")

If DCount("ExpNum", "Exploitant", "ExpNum='" &
sOpenArgs(0) & "'") > 0 Then
'Un exploitant ou annonceur a déjà ce nom
'Je ne veux afficher que lui
Me.RecordSource = "SELECT * from Exploitant
WHERE


Exploitant.ExpNum ='" & sOpenArgs(0) & "'"
End If

'Afficher ou cacher les boutons
ShowButtons "NOTINLIST"

'Si le formulaire Dispositif est ouvert, affichage des
données
ElseIf CurrentProject.AllForms("Dispositif").IsLoaded
Then

enregE = Forms!Dispositif!ExpNum
enregA = Forms!Dispositif!DisAnn

sql = ""
If Not IsNull(enregE) Then
sql = "'" & enregE & "'"
End If

If Not IsNull(enregA) Then
If IsNull(enregE) Then
sql = "'" & enregA & "'"
Else
sql = sql & ",'" & enregA & "'"
End If
End If

If sql <> "" Then
'Afficher un ou deux exploitants
sql = "select * from Exploitant WHERE
Exploitant.ExpNum IN (" & sql & ") AND ExpAct = -1"
Me.RecordSource = sql
End If
ShowButtons "DISPO"
Else
ShowButtons "PARAM"
End If

Exit_Form_Load:
Exit Sub
Err_Form_Load:
Erreur Me.Name, "Form_Load"
Resume Exit_Form_Load
End Sub


Mon souci, c'est que si je suis dans le cas du ElseIf,
tout va bien (mes exploitants sont affichés), mais si je
suis dans le cas du If mon recordset est vide...

N'hésitez pas à me contacter si vous voulez des
précisions sur ce pb... (je sais que ce n'est pas très
clair)

Merci de votre patience et de votre aide

Karim


.




.




Avatar
Pierre CFI [mvp]
If DCount("ExpNum", "Exploitant", "ExpNum='" &
sOpenArgs(0) & "'") > 0 Then
'Un exploitant ou annonceur a déjà ce nom
'Je ne veux afficher que lui
Me.RecordSource = "SELECT * from Exploitant WHERE
Exploitant.ExpNum ='" & sOpenArgs(0) & "'"
End If
c'est bien la dedans que çà coince,?

le dcount est >0 et rien dans le form ??


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Karim" a écrit dans le message de news:21eb01c49a6f$72c49630$
Si je fais Me.Recordset.Movefirst pendant le pas à pas,
j'ai une erreur d'exécution:
3021 - Aucun enregistrement en cours...

Qu'est ce que ça veut dire?


-----Message d'origine-----
çà c'est normal, 0 s'il y a des enr -1 si eof ou bof
pour compter il faut le déplacer
movelast et movefirst

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Karim" a écrit dans
le message de news:0ab501c49a6d$5f019af0

$
Oui j'ai fait un pas à pas...

La requête dans le RecordSource est bonne (en faisant un
copier-coller et en l'exécutant, elle me renvoie bien 1
enreg.). Par contre, si je teste
Me.Recordset.RecordCount, il vaut 0.




-----Message d'origine-----
bonjour
mais ExpNum est string ???
si oui, je pense OpenArgs doit l'étre aussi et dans ce
cas on teste plutot <>"" que Null

Tu as fait un pas à pas pour voir la "bouille" des
variables ??


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Karim" a écrit dans
le message de news:0a5401c49a69$4ceb9e50

$
Bonjour,

J'ai un problème qui dépasse les limites de mon petit
intellect, je me permets donc de vous le soumettre...

Mon formulaire modal affiche les données de la table
Exploitant.
Voici le Form_load... (épuré tant que j'ai pu)


Private Sub Form_Load()
On Error GoTo Err_Form_Load

'Déterminer le mode d'ouverture de cette fenêtre
If Not IsNull(Me.OpenArgs) Then

sOpenArgs = Split(Me.OpenArgs, ";")

If DCount("ExpNum", "Exploitant", "ExpNum='" &
sOpenArgs(0) & "'") > 0 Then
'Un exploitant ou annonceur a déjà ce nom
'Je ne veux afficher que lui
Me.RecordSource = "SELECT * from Exploitant
WHERE


Exploitant.ExpNum ='" & sOpenArgs(0) & "'"
End If

'Afficher ou cacher les boutons
ShowButtons "NOTINLIST"

'Si le formulaire Dispositif est ouvert, affichage des
données
ElseIf CurrentProject.AllForms("Dispositif").IsLoaded
Then

enregE = Forms!Dispositif!ExpNum
enregA = Forms!Dispositif!DisAnn

sql = ""
If Not IsNull(enregE) Then
sql = "'" & enregE & "'"
End If

If Not IsNull(enregA) Then
If IsNull(enregE) Then
sql = "'" & enregA & "'"
Else
sql = sql & ",'" & enregA & "'"
End If
End If

If sql <> "" Then
'Afficher un ou deux exploitants
sql = "select * from Exploitant WHERE
Exploitant.ExpNum IN (" & sql & ") AND ExpAct = -1"
Me.RecordSource = sql
End If
ShowButtons "DISPO"
Else
ShowButtons "PARAM"
End If

Exit_Form_Load:
Exit Sub
Err_Form_Load:
Erreur Me.Name, "Form_Load"
Resume Exit_Form_Load
End Sub


Mon souci, c'est que si je suis dans le cas du ElseIf,
tout va bien (mes exploitants sont affichés), mais si je
suis dans le cas du If mon recordset est vide...

N'hésitez pas à me contacter si vous voulez des
précisions sur ce pb... (je sais que ce n'est pas très
clair)

Merci de votre patience et de votre aide

Karim


.




.




Avatar
Pierre CFI [mvp]
et les boulets, il me semble qu'il la stocke de suite sa variable

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Raymond [mvp]" a écrit dans le message de news:%
10 contre 1 que ça va marcher.

le openargs se détruit selon certaine fonctions utilisées. tu dois
sauvegarder openargs immédiatement dès l'ouverture de ton formulaire.

Private Sub Form_Load()
On Error GoTo Err_Form_Load
Dim X as String
X = Me.OpenArgs ' <=============== >
après tu ne testes plus et tu n'utilises plus le Openargs mais la variable
X
ça va marcher croise les doigts.



--
@+
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


"Karim" a écrit dans le message de
news:21da01c49a6e$f3d35550$
Bonsoir Raymond,

Oui il y a une valeur dans OpenArgs...

En pas à pas ma requête donne
SELECT * FROM Exploitant WHERE Exploitant.ExpNum='HYPER U'

Et ça normalement ça me renvoie un enregistrement (et non
je ne fais pas de pub pour HYPER U)





Avatar
Raymond [mvp]
Non,

Mon formulaire modal affiche les données de la table
Exploitant.
Voici le Form_load... (épuré tant que j'ai pu)




--
@+
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


"Pierre CFI [mvp]" a écrit dans le message de
news:%
et les boulets, il me semble qu'il la stocke de suite sa variable


Avatar
Yann
Salut Pierre,
Moi aussi je ne met jamais de ";" dans mon code, mais à
la fin d'une requête, il en faut....
Me.RecordSource = "SELECT * from Exploitant WHERE
Exploitant.ExpNum ='" & sOpenArgs(0) & "';"


Bye
Yann

-----Message d'origine-----
..../...
hum, je ne mets jamais de ; dans mon code, y a autre
chose :o)) (c'est peut etre du code copié sur le site de

arno , ou arnaud ou
??? qui évidement ne marche pas)
d'ou son déguisement... :o))))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Yann" a écrit dans le message
de news:217a01c49a6a$e1daa4b0$

Salut Karim,
Il manque un ";" à la fin de ta requête...

Bye
Yann



.



Avatar
Pierre CFI [mvp]
non :o))) essaie tu verras

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Yann" a écrit dans le message de news:26b801c49af6$b305ca70$
Salut Pierre,
Moi aussi je ne met jamais de ";" dans mon code, mais à
la fin d'une requête, il en faut....
Me.RecordSource = "SELECT * from Exploitant WHERE
Exploitant.ExpNum ='" & sOpenArgs(0) & "';"


Bye
Yann

-----Message d'origine-----
..../...
hum, je ne mets jamais de ; dans mon code, y a autre
chose :o)) (c'est peut etre du code copié sur le site de

arno , ou arnaud ou
??? qui évidement ne marche pas)
d'ou son déguisement... :o))))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Yann" a écrit dans le message
de news:217a01c49a6a$e1daa4b0$

Salut Karim,
Il manque un ";" à la fin de ta requête...

Bye
Yann



.



Avatar
Yann
Ah ouais.... Les 2 fonctionnent :o)
-----Message d'origine-----
non :o))) essaie tu verras

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Yann" a écrit dans le message
de news:26b801c49af6$b305ca70$

Salut Pierre,
Moi aussi je ne met jamais de ";" dans mon code, mais à
la fin d'une requête, il en faut....
Me.RecordSource = "SELECT * from Exploitant WHERE
Exploitant.ExpNum ='" & sOpenArgs(0) & "';"


Bye
Yann

-----Message d'origine-----
..../...
hum, je ne mets jamais de ; dans mon code, y a autre
chose :o)) (c'est peut etre du code copié sur le site de

arno , ou arnaud ou
??? qui évidement ne marche pas)
d'ou son déguisement... :o))))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Yann" a écrit dans le message
de news:217a01c49a6a$e1daa4b0$

Salut Karim,
Il manque un ";" à la fin de ta requête...

Bye
Yann



.




.




Avatar
Pierre CFI [mvp]
cela dit, c'est une bonne habitude de terminer une instruction sql par un ;

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Yann" a écrit dans le message de news:272001c49afe$fa29ca70$
Ah ouais.... Les 2 fonctionnent :o)
-----Message d'origine-----
non :o))) essaie tu verras

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Yann" a écrit dans le message
de news:26b801c49af6$b305ca70$

Salut Pierre,
Moi aussi je ne met jamais de ";" dans mon code, mais à
la fin d'une requête, il en faut....
Me.RecordSource = "SELECT * from Exploitant WHERE
Exploitant.ExpNum ='" & sOpenArgs(0) & "';"


Bye
Yann

-----Message d'origine-----
..../...
hum, je ne mets jamais de ; dans mon code, y a autre
chose :o)) (c'est peut etre du code copié sur le site de

arno , ou arnaud ou
??? qui évidement ne marche pas)
d'ou son déguisement... :o))))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Yann" a écrit dans le message
de news:217a01c49a6a$e1daa4b0$

Salut Karim,
Il manque un ";" à la fin de ta requête...

Bye
Yann



.




.




1 2 3