A voir également:
- ACCESS
- Access appdata - Guide
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- Acer quick access - Forum Logiciels
- You don't have permission to access this resource ✓ - Forum Réseaux sociaux
- Controller access network - Télécharger - Contrôle parental
2 réponses
Utilisateur anonyme
Modifié par Lupin.PC4 le 2/06/2011 à 19:05
Modifié par Lupin.PC4 le 2/06/2011 à 19:05
Bonjour,
Il existe plusieurs façon, voici un exemple :
Dans un premier temps, il est souhaitable que le formulaire
soit accroché sur une requête et non sur une(les) table(s).
Étape 1
Créer une requête globale qui sélectionne tous les enregistrements
de toute(s) la(les) table(s).
Étape 2
Ouvrir ton formulaire en mode [Modification], et changer la référence
vers la requête plutôt que vers la table.
Étape 3
Créer une requête qui sélectionne tous les champs souhaité dans un état,
pour un client unique
Clause Where ID_Client = xyz
Étape 4
Créer un État qui s'accroche sur la requête précédamment crée.
Étape 5
Installer un bouton dans le pied de page du premier formulaire qui permet
de naviguer dans tous les enregistrements.
Private Sub cmd_Execute_Click()
On Error GoTo Err_cmd_Execute_Click
'MsgBox Me.TitreFrancais.Value
MsgBox Me.IDClient.Value
Exit_cmd_Execute_Click:
Exit Sub
Err_cmd_Execute_Click:
MsgBox Err.Description
Resume Exit_cmd_Execute_Click
End Sub
Étape 6
Éntrer en mode [Modification] pour la requête du client unique, changer
le format pour format SQL.
Copier/Coller le texte de la requête SQL
Étape 7
Amener ce texte dans le code du bouton ajouter
Exemple de requête :
'SELECT TableVideo.TitreFrancais, TableVideo.Cassette, TableVideo.Annee,
' TableVideo.Episode, TableVideo.Nationalite, TableVideo.Style,
' TableVideo.Categorie, TableVideo.Duree, TableVideo.Cote,
' TableVideo.Realisateur, TableVideo.Serie, TableVideo.TitreAnglais,
' TableVideo.Mode, TableVideo.FicheOK, TableVideo.Numero, TableVideo.Stock,
' TableVideo.Classe, TableVideo.Type, TableVideo.CompteurHeures,
' TableVideo.Qualite, TableVideo.Critiques, TableVideo.NumeroCode,
' TableVideo.ActeursPrincipaux, TableVideo.ActeursSecondaires,
' TableVideo.Position
'FROM
' TableVideo
'WHERE
' TableVideo.TitreFrancais="ROBIN DES BOIS";
Étape 8
Transformer cette requête en chaine de caractères, exemple :
Dim ReqSQL As String
ReqSQL = "SELECT TableVideo.TitreFrancais, TableVideo.Cassette, TableVideo.Annee," & _
"TableVideo.Episode, TableVideo.Nationalite, TableVideo.Style," & _
"TableVideo.Categorie, TableVideo.Duree, TableVideo.Cote," & _
"TableVideo.Realisateur, TableVideo.Serie, TableVideo.TitreAnglais," & _
"TableVideo.Mode, TableVideo.FicheOK, TableVideo.Numero, TableVideo.Stock," & _
"TableVideo.Classe, TableVideo.Type, TableVideo.CompteurHeures," & _
"TableVideo.Qualite, TableVideo.Critiques, TableVideo.NumeroCode," & _
"TableVideo.ActeursPrincipaux, TableVideo.ActeursSecondaires," & _
"TableVideo.Position " & _
"FROM TableVideo " & _
"WHERE " & _
"TableVideo.TitreFrancais=" & """" & "ROBIN DES BOIS" & """" & ";"
Étape 9
Modifier le titre (le numéro de client dans votre cas) par le champ contenant le numéro de client :
"WHERE " & _
"TableVideo.TitreFrancais=" & """" & "ROBIN DES BOIS" & """" & ";"
Devient :
"WHERE " & _
"TableVideo.TitreFrancais=" & """" & Me.TitreFrancais.Value & """" & ";"
Étape 10
Ajouter la fonction suivante :
Public Function ChangeRequeteDef(ChaineRequete As String, ChaineSQL As String) As Boolean
Dim Definition As QueryDef
If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
ChangeRequeteDef = False
Else
Set Definition = CurrentDb.QueryDefs(ChaineRequete)
Definition.SQL = ChaineSQL
Definition.Close
RefreshDatabaseWindow
ChangeRequeteDef = True
End If
End Function
'
Étape 11
Ajouter un appel à la fonction qui change la définition de la requête dans la procédure du bouton.
et ajouter un appel au lancement de l'état.
Vous devriez donc avoir le code suivant derrière votre bouton :
n.b. Méfiez vous des sauts de ligne non souhaité dans ce texte.
surtout au moment de la création de la requête SQL.
Cdt
Lupin
Il existe plusieurs façon, voici un exemple :
Dans un premier temps, il est souhaitable que le formulaire
soit accroché sur une requête et non sur une(les) table(s).
Étape 1
Créer une requête globale qui sélectionne tous les enregistrements
de toute(s) la(les) table(s).
Étape 2
Ouvrir ton formulaire en mode [Modification], et changer la référence
vers la requête plutôt que vers la table.
Étape 3
Créer une requête qui sélectionne tous les champs souhaité dans un état,
pour un client unique
Clause Where ID_Client = xyz
Étape 4
Créer un État qui s'accroche sur la requête précédamment crée.
Étape 5
Installer un bouton dans le pied de page du premier formulaire qui permet
de naviguer dans tous les enregistrements.
Private Sub cmd_Execute_Click()
On Error GoTo Err_cmd_Execute_Click
'MsgBox Me.TitreFrancais.Value
MsgBox Me.IDClient.Value
Exit_cmd_Execute_Click:
Exit Sub
Err_cmd_Execute_Click:
MsgBox Err.Description
Resume Exit_cmd_Execute_Click
End Sub
Étape 6
Éntrer en mode [Modification] pour la requête du client unique, changer
le format pour format SQL.
Copier/Coller le texte de la requête SQL
Étape 7
Amener ce texte dans le code du bouton ajouter
Exemple de requête :
'SELECT TableVideo.TitreFrancais, TableVideo.Cassette, TableVideo.Annee,
' TableVideo.Episode, TableVideo.Nationalite, TableVideo.Style,
' TableVideo.Categorie, TableVideo.Duree, TableVideo.Cote,
' TableVideo.Realisateur, TableVideo.Serie, TableVideo.TitreAnglais,
' TableVideo.Mode, TableVideo.FicheOK, TableVideo.Numero, TableVideo.Stock,
' TableVideo.Classe, TableVideo.Type, TableVideo.CompteurHeures,
' TableVideo.Qualite, TableVideo.Critiques, TableVideo.NumeroCode,
' TableVideo.ActeursPrincipaux, TableVideo.ActeursSecondaires,
' TableVideo.Position
'FROM
' TableVideo
'WHERE
' TableVideo.TitreFrancais="ROBIN DES BOIS";
Étape 8
Transformer cette requête en chaine de caractères, exemple :
Dim ReqSQL As String
ReqSQL = "SELECT TableVideo.TitreFrancais, TableVideo.Cassette, TableVideo.Annee," & _
"TableVideo.Episode, TableVideo.Nationalite, TableVideo.Style," & _
"TableVideo.Categorie, TableVideo.Duree, TableVideo.Cote," & _
"TableVideo.Realisateur, TableVideo.Serie, TableVideo.TitreAnglais," & _
"TableVideo.Mode, TableVideo.FicheOK, TableVideo.Numero, TableVideo.Stock," & _
"TableVideo.Classe, TableVideo.Type, TableVideo.CompteurHeures," & _
"TableVideo.Qualite, TableVideo.Critiques, TableVideo.NumeroCode," & _
"TableVideo.ActeursPrincipaux, TableVideo.ActeursSecondaires," & _
"TableVideo.Position " & _
"FROM TableVideo " & _
"WHERE " & _
"TableVideo.TitreFrancais=" & """" & "ROBIN DES BOIS" & """" & ";"
Étape 9
Modifier le titre (le numéro de client dans votre cas) par le champ contenant le numéro de client :
"WHERE " & _
"TableVideo.TitreFrancais=" & """" & "ROBIN DES BOIS" & """" & ";"
Devient :
"WHERE " & _
"TableVideo.TitreFrancais=" & """" & Me.TitreFrancais.Value & """" & ";"
Étape 10
Ajouter la fonction suivante :
Public Function ChangeRequeteDef(ChaineRequete As String, ChaineSQL As String) As Boolean
Dim Definition As QueryDef
If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
ChangeRequeteDef = False
Else
Set Definition = CurrentDb.QueryDefs(ChaineRequete)
Definition.SQL = ChaineSQL
Definition.Close
RefreshDatabaseWindow
ChangeRequeteDef = True
End If
End Function
'
Étape 11
Ajouter un appel à la fonction qui change la définition de la requête dans la procédure du bouton.
et ajouter un appel au lancement de l'état.
Vous devriez donc avoir le code suivant derrière votre bouton :
Private Sub cmd_Execute_Click() On Error GoTo Err_cmd_Execute_Click Dim Ensemble As Recordset Dim ReqSQL As String ReqSQL = "SELECT TableVideo.TitreFrancais, TableVideo.Cassette, TableVideo.Annee," & _ "TableVideo.Episode, TableVideo.Nationalite, TableVideo.Style," & _ "TableVideo.Categorie, TableVideo.Duree, TableVideo.Cote," & _ "TableVideo.Realisateur, TableVideo.Serie, TableVideo.TitreAnglais," & _ "TableVideo.Mode, TableVideo.FicheOK, TableVideo.Numero, TableVideo.Stock," & _ "TableVideo.Classe, TableVideo.Type, TableVideo.CompteurHeures," & _ "TableVideo.Qualite, TableVideo.Critiques, TableVideo.NumeroCode," & _ "TableVideo.ActeursPrincipaux, TableVideo.ActeursSecondaires," & _ "TableVideo.Position " & _ "FROM TableVideo " & _ "WHERE " & _ "TableVideo.TitreFrancais=" & """" & Me.TitreFrancais.Value & """" & ";" If (ChangeRequeteDef("Req_Titre_Specifique", ReqSQL)) Then Set Ensemble = CurrentDb.OpenRecordset("Req_Titre_Specifique") Ensemble.MoveLast Ensemble.MoveFirst Ensemble.Close DoCmd.OpenReport "État DVD Titre Vidéo", acViewNormal, "", "", acNormal End If Exit_cmd_Execute_Click: Exit Sub Err_cmd_Execute_Click: MsgBox Err.Description Resume Exit_cmd_Execute_Click End Sub '
n.b. Méfiez vous des sauts de ligne non souhaité dans ce texte.
surtout au moment de la création de la requête SQL.
Cdt
Lupin