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

faire apparaître tous les enregistrements, même vides, d'un sous-formulaire lié

2 réponses
Avatar
okolo
Bonjour à tous, bonsoir aux autres,

Dans le cadre d'une formation professionnelle, je dois évaluer 600 personnes
sur base de 3*30 critères pour chaque séance de travail.

j'ai une table séance, une personnel une cotations.

mon formulaire est articulé:

séance
participant SF(personnel/séance)
cotations SF (cotation/participant)

Or, logiquement, tant que id_cotations n'est pas rempli dans mon
sous-formulaire, cotations SF reste vierge. Je voudrais donc que ma liste
entière apparaisse, plutôt que de remplir le tout un à un.
Hervé m'a gentiment proposé de remplir chaque ligne une à une via une
requête ajout, mais mes connaissances limitées en access n'ont pu résoudre
mon problème.

J'ai tenté ceci sur ouverture, sans succès (erreur:la déclaration de la
procédure ne corerspond pas à la description de l'événement ou de la
procédure de même nom)

Public Sub form_load(strTable As String, strChamp As String)

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim i As Long
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strTable, dbOpenDynaset)
i = 1
With rst
Do While Not .EOF
i = i + 1
.Edit
.Fields(strChamp) = i
.Update
.MoveNext
Loop
End With
rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing
End Sub

Merci d'avance pour votre aide.
--
okolo

2 réponses

Avatar
Gilbert
Bonjour,

L'évènement sur chargement n'accepte pas de paramètres, ce qui provoque
l'erreur.
utilise

Public Sub Form_load()
Call TaProcedure(TaTable,ToChamp)
End Sub

Sub TaProcedure(strTable As String, strChamp As String)
.........
End Sub

Gilbert


"okolo" (virerpoint)> a écrit dans le message
de news:%
Bonjour à tous, bonsoir aux autres,

Dans le cadre d'une formation professionnelle, je dois évaluer 600
personnes

sur base de 3*30 critères pour chaque séance de travail.

j'ai une table séance, une personnel une cotations.

mon formulaire est articulé:

séance
participant SF(personnel/séance)
cotations SF (cotation/participant)

Or, logiquement, tant que id_cotations n'est pas rempli dans mon
sous-formulaire, cotations SF reste vierge. Je voudrais donc que ma liste
entière apparaisse, plutôt que de remplir le tout un à un.
Hervé m'a gentiment proposé de remplir chaque ligne une à une via une
requête ajout, mais mes connaissances limitées en access n'ont pu résoudre
mon problème.

J'ai tenté ceci sur ouverture, sans succès (erreur:la déclaration de la
procédure ne corerspond pas à la description de l'événement ou de la
procédure de même nom)

Public Sub form_load(strTable As String, strChamp As String)

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim i As Long
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strTable, dbOpenDynaset)
i = 1
With rst
Do While Not .EOF
i = i + 1
.Edit
.Fields(strChamp) = i
.Update
.MoveNext
Loop
End With
rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing
End Sub

Merci d'avance pour votre aide.
--
okolo




Avatar
okolo
Bonjour et merci à Gilbert pour son secours.

Effectivement, en appelant la procédure, j'ai bien un résultat. Cependant,
ce n'est pas celui escompté. Ma procédure remplit la table au fur et à
mesure que je remplis le formulaire manuellement, puis vide le formulaire.

Ce que je voudrais, c'est un tableau tout rempli, comme dans Excel, par
exemple en cliquant sur un bouton. Pour ce faire, je suppose que je devrais
boucler une macro "nouvel enregistrement" en me basant sur la clef primaire
de mon sous-formulaire, mais je n'ai aucune idée de comment on s'y prend.

Une idée svp?

merci

--
okolo
"Gilbert" a écrit dans le message de news:

Bonjour,

L'évènement sur chargement n'accepte pas de paramètres, ce qui provoque
l'erreur.
utilise

Public Sub Form_load()
Call TaProcedure(TaTable,ToChamp)
End Sub

Sub TaProcedure(strTable As String, strChamp As String)
.........
End Sub

Gilbert


"okolo" (virerpoint)> a écrit dans le message
de news:%
Bonjour à tous, bonsoir aux autres,

Dans le cadre d'une formation professionnelle, je dois évaluer 600
personnes

sur base de 3*30 critères pour chaque séance de travail.

j'ai une table séance, une personnel une cotations.

mon formulaire est articulé:

séance
participant SF(personnel/séance)
cotations SF (cotation/participant)

Or, logiquement, tant que id_cotations n'est pas rempli dans mon
sous-formulaire, cotations SF reste vierge. Je voudrais donc que ma liste
entière apparaisse, plutôt que de remplir le tout un à un.
Hervé m'a gentiment proposé de remplir chaque ligne une à une via une
requête ajout, mais mes connaissances limitées en access n'ont pu résoudre
mon problème.

J'ai tenté ceci sur ouverture, sans succès (erreur:la déclaration de la
procédure ne corerspond pas à la description de l'événement ou de la
procédure de même nom)

Public Sub form_load(strTable As String, strChamp As String)

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim i As Long
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strTable, dbOpenDynaset)
i = 1
With rst
Do While Not .EOF
i = i + 1
.Edit
.Fields(strChamp) = i
.Update
.MoveNext
Loop
End With
rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing
End Sub

Merci d'avance pour votre aide.
--
okolo