IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Probleme source formulaire case à cocher


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 17
    Points
    17
    Par défaut Probleme source formulaire case à cocher
    On m'a donné les sources suivantes :

    3 tables

    tblentreprise(Numentreprise,NomEntreprise)
    tblActivite(NumActivite,NomActivite)
    tblRealiser(NumEntreprise,Numactivite)

    Dans le code de la page formulaire :

    Private Sub Form_Current()
    Dim oDB As DAO.Database
    Dim oQdf As DAO.QueryDef
    Dim oRstActivite As DAO.Recordset, oRstRealiser As DAO.Recordset
    Dim Item As ListItem
    Dim intAct As Integer
    Set oDB = CurrentDb
    'Vide la zone de liste
    'Dim ListView1 As ListView
    ListView1.ListItems.Clear
    'Définit la propriété Case à cocher à oui
    ListView1.Checkboxes = True
    ListView1.View = lvwList

    'Prépare la requête sur la table tblRealiser
    Set oQdf = oDB.QueryDefs("R02 Activité d'une entreprise")
    With oQdf
    .Parameters(0).Value = Me.NumEntreprise
    Set oRstRealiser = .OpenRecordset
    End With

    Set oRstActivite = oDB.OpenRecordset("R01 Liste Activités")
    'Parcours le recordset des activités
    With oRstActivite
    While Not .EOF
    intAct = .Fields(0)
    'Crée la nouvelle ligne
    Set Item = ListView1.ListItems.Add(Key:="A" & .Fields(0), Text:=.Fields(1))
    'recherche l'enregistrement
    With oRstRealiser
    .FindFirst "NumActivite=" & intAct
    Item.Checked = Not .NoMatch
    End With
    .MoveNext
    Wend
    End With

    End Sub

    et


    Private Sub ListView1_ItemCheck(ByVal Item As Object)
    Dim oDb As DAO.Database
    Dim oQdf As DAO.QueryDef
    Dim strName As String
    If Item.Checked Then
    strName = "R03 Insertion"
    Else
    strName = "R04 Suppression"
    End If

    Set oDb = CurrentDb
    Set oQdf = oDb.QueryDefs(strName)
    With oQdf
    .Parameters("PEntreprise") = CInt(Me.NumEntreprise)
    .Parameters("PActivite") = CInt(Mid(Item.Key, 2))
    .Execute
    End With

    End Sub

    Dans le code Pour "NumEntreprise" access transforme systematiquement la majuscule en minuscule il n'en démord pas :
    Je pense que cela est du à mon formulaire basé sur la tblentreprise avec comme donnée Numentreprise qui est en minuscule.

    Ca marche sans buger avec comme paramètre "Numentreprise" à la place de "NumEntreprise"... je peu cocher, décocher, c'est super, mais si je reviens sur l'enregistrement rien n'est coche...


    _________________________
    Je refait des tables
    J'ai donc 3 tables

    tblSite(Numsite,Nomsite)
    tblActivite(Numactivite,Nomactivite)
    tblRealiser(Idsite,Idactivite)

    R01 :
    SELECT Numactivite, Nomactivite
    FROM tblActivite;

    R02 :

    PARAMETERS Psite Long;
    SELECT Idactivite
    FROM tblRealiser
    WHERE Idsite=Psite;

    R03 :
    PARAMETERS Psite Long, Pactivite Long;
    INSERT INTO tblRealiser
    VALUES (Psite, Pactivite);

    R04 :
    PARAMETERS Psite Long, Pactivite Long;
    DELETE *
    FROM tblRealiser
    WHERE Idsite=Psite AND Idactivite=Pactivite;


    Code Formulaire devient :

    Private Sub Form_Current()
    Dim oDB As DAO.Database
    Dim oQdf As DAO.QueryDef
    Dim oRstActivite As DAO.Recordset, oRstRealiser As DAO.Recordset
    Dim Item As ListItem
    Dim intAct As Integer
    Set oDB = CurrentDb
    'Vide la zone de liste
    'Dim ListView1 As ListView
    ListView1.ListItems.Clear
    'Définit la propriété Case à cocher à oui
    ListView1.Checkboxes = True
    ListView1.View = lvwList

    'Prépare la requête sur la table tblRealiser
    Set oQdf = oDB.QueryDefs("R02")
    With oQdf
    .Parameters(0).Value = Me.Idsite (Remplace Me.NumEntreprise)
    Set oRstRealiser = .OpenRecordset
    End With

    Set oRstActivite = oDB.OpenRecordset("R01")
    'Parcours le recordset des activités
    With oRstActivite
    While Not .EOF
    intAct = .Fields(0)
    'Crée la nouvelle ligne
    Set Item = ListView1.ListItems.Add(Key:="A" & .Fields(0), Text:=.Fields(1))
    'recherche l'enregistrement
    With oRstRealiser
    .FindFirst "Idactivite=" & intAct (remplace Numactivite)
    Item.Checked = Not .NoMatch
    End With
    .MoveNext
    Wend
    End With

    End Sub
    __________________________
    et
    _________________________
    Private Sub ListView1_ItemCheck(ByVal Item As Object)
    Dim oDb As DAO.Database
    Dim oQdf As DAO.QueryDef
    Dim strName As String
    If Item.Checked Then
    strName = "R03"
    Else
    strName = "R04"
    End If

    Set oDb = CurrentDb
    Set oQdf = oDb.QueryDefs(strName)
    With oQdf
    .Parameters("Psite") = CInt(Me.Idsite) (Remplace Me.NumEntreprise)
    .Parameters("Pactivite") = CInt(Mid(Item.Key, 2))
    .Execute
    End With

    End Sub


    Ayant modifier NumEntreprise par Idsite, Il ne convertit pas le "E" en minuscule cette fois... mais ca ne marche pas, il me dit que Idsite "methode ou donnée introuvable".

    Merci pour conseils...
      0  0

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Continue sur ton premier sujet et utilise les balises code !
      0  0

Discussions similaires

  1. Problemes multiples avec "case à cocher"
    Par guidzit dans le forum Access
    Réponses: 13
    Dernier message: 21/09/2006, 14h46
  2. Réponses: 3
    Dernier message: 09/08/2006, 08h25
  3. Formulaire case à cocher
    Par regis94 dans le forum Access
    Réponses: 21
    Dernier message: 03/08/2006, 12h43
  4. [formulaire] Case à cocher et disabled
    Par wolflinger dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/05/2006, 10h59
  5. Formulaire case à cocher
    Par LDDL dans le forum Langage
    Réponses: 6
    Dernier message: 02/05/2006, 20h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo