Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

2 questions sur SQL et formulaire Access

7 réponses
Avatar
Jérôme W.
Bonjour,

Je bloque aujourd'hui sur deux problèmes :

1/ comment donner en SQL un entête de colonne qui contiennent des espaces ?
SELECT [...] T_CONTRATS.id_type_contrat AS Type de contrat [...]
SELECT [...] T_CONTRATS.id_type_contrat AS (Type de contrat) [...]
=> ne donne rien
SELECT [...] T_CONTRATS.id_type_contrat AS 'Type de contrat' [...]
SELECT [...] T_CONTRATS.id_type_contrat AS "Type de contrat" [...]
=> l'entête de colonne garde la quotte ou la double quotte. Pas bon non plus
!

2/ Dans un formulaire Access (configuré en mode continu) j'ai différentes
lignes qui contiennent chacune une case à cocher (bl_paiement). Je voudrais
rajouter un bouton de commande qui sélectionne/désélectionne toutes les
cases à cocher en un coup...
Quelqu'un pourrait'il m'expliquer cette procédure ? De quelle manière
peut-on accéder à une collection de contrôles ?

Merci de votre aide
Jérôme

7 réponses

Avatar
EPM
Bonjour
1. SELECT [...] T_CONTRATS.id_type_contrat AS [Type de contrat] [...]

2. Quand tu dis selectionne/deselectionne = filtrer cocher/ filtrer decocher ? ou cocher tout / decocher tout
Avatar
Jérôme W.
"EPM" a écrit dans le message de news:

Bonjour,
1. SELECT [...] T_CONTRATS.id_type_contrat AS [Type de contrat] [...]

2. Quand tu dis selectionne/deselectionne = filtrer cocher/ filtrer
decocher ? ou cocher tout / decocher tout ?




Non il ne faut pas filtrer mais bien "cocher tout / decocher tout"

Avatar
Gilbert
Bonjour

En nommant 'Cocher1' à 'CocherN' les cases à cocher à activer ou désactiver
dans le formulaire.
Sur clic du bouton :
'Pour n'activer que celles qui sont nommées CocherX
j = 1
For i = 0 To Me.Controls.Count - 1
If Left(Me.Controls(i).Name, 6) = "cocher" Then
Me("Cocher" & j).Value = True 'ou False pour désactiver
j = j + 1
End If
Next i

'Pour activer toutes les cases à cocher du formulaire
For i = 0 To Me.Controls.Count - 1
If Me.Controls(i).ControlType = acCheckBox Then
Me.Controls(i).Value = True
End If
Next i

Cordialement

Gilbert


"Jérôme W." a écrit dans le message
de news:
Bonjour,

Je bloque aujourd'hui sur deux problèmes :

1/ comment donner en SQL un entête de colonne qui contiennent des espaces
?

SELECT [...] T_CONTRATS.id_type_contrat AS Type de contrat [...]
SELECT [...] T_CONTRATS.id_type_contrat AS (Type de contrat) [...]
=> ne donne rien
SELECT [...] T_CONTRATS.id_type_contrat AS 'Type de contrat' [...]
SELECT [...] T_CONTRATS.id_type_contrat AS "Type de contrat" [...]
=> l'entête de colonne garde la quotte ou la double quotte. Pas bon non
plus

!

2/ Dans un formulaire Access (configuré en mode continu) j'ai différentes
lignes qui contiennent chacune une case à cocher (bl_paiement). Je
voudrais

rajouter un bouton de commande qui sélectionne/désélectionne toutes les
cases à cocher en un coup...
Quelqu'un pourrait'il m'expliquer cette procédure ? De quelle manière
peut-on accéder à une collection de contrôles ?

Merci de votre aide
Jérôme




Avatar
Jérôme W.
Ca n'à pas l'air de fonctionner . Seule la première case à cocher est
modifiée... et mon formulaire se répète sur plusieurs lignes.

Merci pour votre réponse
Jérôme

"Gilbert" a écrit dans le message de news:
#
Bonjour

En nommant 'Cocher1' à 'CocherN' les cases à cocher à activer ou
désactiver

dans le formulaire.
Sur clic du bouton :
'Pour n'activer que celles qui sont nommées CocherX
j = 1
For i = 0 To Me.Controls.Count - 1
If Left(Me.Controls(i).Name, 6) = "cocher" Then
Me("Cocher" & j).Value = True 'ou False pour désactiver
j = j + 1
End If
Next i

'Pour activer toutes les cases à cocher du formulaire
For i = 0 To Me.Controls.Count - 1
If Me.Controls(i).ControlType = acCheckBox Then
Me.Controls(i).Value = True
End If
Next i

Cordialement

Gilbert


"Jérôme W." a écrit dans le
message

de news:
Bonjour,

Je bloque aujourd'hui sur deux problèmes :

1/ comment donner en SQL un entête de colonne qui contiennent des
espaces


?
SELECT [...] T_CONTRATS.id_type_contrat AS Type de contrat [...]
SELECT [...] T_CONTRATS.id_type_contrat AS (Type de contrat) [...]
=> ne donne rien
SELECT [...] T_CONTRATS.id_type_contrat AS 'Type de contrat' [...]
SELECT [...] T_CONTRATS.id_type_contrat AS "Type de contrat" [...]
=> l'entête de colonne garde la quotte ou la double quotte. Pas bon non
plus

!

2/ Dans un formulaire Access (configuré en mode continu) j'ai
différentes


lignes qui contiennent chacune une case à cocher (bl_paiement). Je
voudrais

rajouter un bouton de commande qui sélectionne/désélectionne toutes les
cases à cocher en un coup...
Quelqu'un pourrait'il m'expliquer cette procédure ? De quelle manière
peut-on accéder à une collection de contrôles ?

Merci de votre aide
Jérôme








Avatar
Gilbert
Désolé je n'avais pas fait attention au '(configuré en mode continu)'.
Dans ce cas, pour modifier tous les enregistrements je ferais une requête
Mise à jour

DoCmd.RunSQL ("UPDATE Table1 SET Table1.cocher1 = 1;")
Me.Refresh
ou
DoCmd.RunSQL ("UPDATE Table1 SET Table1.cocher1 = 0;")
Me.Refresh

Gilbert

"Jérôme W." a écrit dans le message
de news:
Ca n'à pas l'air de fonctionner . Seule la première case à cocher est
modifiée... et mon formulaire se répète sur plusieurs lignes.

Merci pour votre réponse
Jérôme

"Gilbert" a écrit dans le message de news:
#
Bonjour

En nommant 'Cocher1' à 'CocherN' les cases à cocher à activer ou
désactiver

dans le formulaire.
Sur clic du bouton :
'Pour n'activer que celles qui sont nommées CocherX
j = 1
For i = 0 To Me.Controls.Count - 1
If Left(Me.Controls(i).Name, 6) = "cocher" Then
Me("Cocher" & j).Value = True 'ou False pour désactiver
j = j + 1
End If
Next i

'Pour activer toutes les cases à cocher du formulaire
For i = 0 To Me.Controls.Count - 1
If Me.Controls(i).ControlType = acCheckBox Then
Me.Controls(i).Value = True
End If
Next i

Cordialement

Gilbert


"Jérôme W." a écrit dans le
message

de news:
Bonjour,

Je bloque aujourd'hui sur deux problèmes :

1/ comment donner en SQL un entête de colonne qui contiennent des
espaces


?
SELECT [...] T_CONTRATS.id_type_contrat AS Type de contrat [...]
SELECT [...] T_CONTRATS.id_type_contrat AS (Type de contrat) [...]
=> ne donne rien
SELECT [...] T_CONTRATS.id_type_contrat AS 'Type de contrat' [...]
SELECT [...] T_CONTRATS.id_type_contrat AS "Type de contrat" [...]
=> l'entête de colonne garde la quotte ou la double quotte. Pas bon
non



plus
!

2/ Dans un formulaire Access (configuré en mode continu) j'ai
différentes


lignes qui contiennent chacune une case à cocher (bl_paiement). Je
voudrais

rajouter un bouton de commande qui sélectionne/désélectionne toutes
les



cases à cocher en un coup...
Quelqu'un pourrait'il m'expliquer cette procédure ? De quelle manière
peut-on accéder à une collection de contrôles ?

Merci de votre aide
Jérôme












Avatar
Jérôme W.
Dans mon cas ce n'est pas aussi évident car l'affichage est filtré :
il faudrait reconstituer une requête SQL à l'aide du "recordesource" et du
"filter".

du style :
----------------------------------------
sSQL="UPDATE " & me.recordsource & " SET [ ...]"
if me.filter<>"" then
sSQL=sSQL & " WHERE " & Me.filter
end if
Docmd.RunSQL sSQL
me.requery
----------------------------------------

A moins qu'il n'existe une formule magique pour cela ?

Sinon j'ai pensé à cette solution :
----------------------------------------
Set rs = Me.Recordset
While Not rs.EOF
rs.Edit
rs!bl_paiement = True
rs.Update
rs.MoveNext
Wend
Me.Requery
----------------------------------------


Jérôme



"Gilbert" a écrit dans le message de news:
#
Désolé je n'avais pas fait attention au '(configuré en mode continu)'.
Dans ce cas, pour modifier tous les enregistrements je ferais une requête
Mise à jour

DoCmd.RunSQL ("UPDATE Table1 SET Table1.cocher1 = 1;")
Me.Refresh
ou
DoCmd.RunSQL ("UPDATE Table1 SET Table1.cocher1 = 0;")
Me.Refresh

Gilbert

"Jérôme W." a écrit dans le
message

de news:
Ca n'à pas l'air de fonctionner . Seule la première case à cocher est
modifiée... et mon formulaire se répète sur plusieurs lignes.

Merci pour votre réponse
Jérôme

"Gilbert" a écrit dans le message de news:
#
Bonjour

En nommant 'Cocher1' à 'CocherN' les cases à cocher à activer ou
désactiver

dans le formulaire.
Sur clic du bouton :
'Pour n'activer que celles qui sont nommées CocherX
j = 1
For i = 0 To Me.Controls.Count - 1
If Left(Me.Controls(i).Name, 6) = "cocher" Then
Me("Cocher" & j).Value = True 'ou False pour désactiver
j = j + 1
End If
Next i

'Pour activer toutes les cases à cocher du formulaire
For i = 0 To Me.Controls.Count - 1
If Me.Controls(i).ControlType = acCheckBox Then
Me.Controls(i).Value = True
End If
Next i

Cordialement

Gilbert


"Jérôme W." a écrit dans le
message

de news:
Bonjour,

Je bloque aujourd'hui sur deux problèmes :

1/ comment donner en SQL un entête de colonne qui contiennent des
espaces


?
SELECT [...] T_CONTRATS.id_type_contrat AS Type de contrat [...]
SELECT [...] T_CONTRATS.id_type_contrat AS (Type de contrat) [...]
=> ne donne rien
SELECT [...] T_CONTRATS.id_type_contrat AS 'Type de contrat' [...]
SELECT [...] T_CONTRATS.id_type_contrat AS "Type de contrat" [...]
=> l'entête de colonne garde la quotte ou la double quotte. Pas bon
non



plus
!

2/ Dans un formulaire Access (configuré en mode continu) j'ai
différentes


lignes qui contiennent chacune une case à cocher (bl_paiement). Je
voudrais

rajouter un bouton de commande qui sélectionne/désélectionne toutes
les



cases à cocher en un coup...
Quelqu'un pourrait'il m'expliquer cette procédure ? De quelle
manière




peut-on accéder à une collection de contrôles ?

Merci de votre aide
Jérôme
















Avatar
Ze_titi
Bonjour

Je pense à une solution peut-être plus simple
Dans le code de ton formulaire, tu déclares 2 booléens: "MAJ" et "cocher" que tu mets à false à l'ouverture du formulaire
Sur le clic du bouton "cocher tous", tu mets à true tes 2 booléens
Sur l'évènement "Au formatage" de ta section détail, tu mets le code suivant

if MAJ the
if cocher the
cocherX.value=tru
els
cocherX.valueúls
end i
end i

Ca n'est qu'une idée que je n'ai d'ailleurs pas testé mais ça devrait fonctionner

Voilou

@+

Titi