Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/07/2011, 23h23   #1
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 176
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 176
Points : 192
Points : 192
Par défaut Code formulaire Tache du jour "incompatibilité de type"

Bonjour ! Tous le monde j'ai créer un code pour un Splash Screen il y a quelques petit problème exemple incompatibilité de type. Si je vous écrit c'est que j'aimerai avoir l'opinion d'expert sur la facon d'écrire mon code. Je suis apprenti en la matière et j'adore ca donc je désire me perfectionner avec votre aide biensur!

Voici mon code qui contient un message demandant à l'administrateur, si il désire changer le message du jour qui se trouve sur le login principal. Donc en gros il y a une case à coché référé a la table qui spécifie si l'utilisateur désire ou pas pour le restant de la journée avoir ce splash screen.
Citation:
Mon code semble ne pas reconnaitre la case coché dans la table au Form_load. Donc l'incompatibilité de type semble venir de là !!
Il y a plus de 1 administrateur donc je doit séparer chaque enregistremement suivant l'utilisateur d'où ma référence à la table. Si vous avez des idées afin que je puisse me perfectionner je serai ravi d'en apprendre d'avantage . Merci d'avance

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Option Compare Database
Option Explicit
 
 
 
Public Sub non_Click()
On Error GoTo err_non
 
Dim valeurboolean As Boolean
Dim datetemp As Date
Dim optionToUpdate As String
optionToUpdate = "Adminpremierevisite"
 
    If Me.Adminpremierevisite = True Then
        valeurboolean = True
        datetemp = date
    Else
        valeurboolean = False
        datetemp = Empty
    End If
   'update de la table
    Call update(optionToUpdate, valeurboolean, datetemp)
 
DoCmd.Close
exit_non:
Exit Sub
err_non:
MsgBox Err.Description
Resume exit_non
End Sub
 
Private Sub Form_Load()
Dim datetemp As Date
Dim optionToUpdate As String
optionToUpdate = "Adminpremierevisite"
 
On Error GoTo err_form_load
 
    If IsNull(Forms!hiddenform!IDsecouristevar) Or Forms!hiddenform!IDsecouristevar = "" Then
            Me.IDsecouristevar = ""
            Exit Sub
            DoCmd.Close
            Else
            Me.IDsecouristevar = Forms!hiddenform!IDsecouristevar
        End If
        Me.Adminpremierevisite = DLookup("Adminpremierevisite", "Tbl_secouriste", "IDsecouriste" = Me.IDsecouristevar)
    If Me.Adminpremierevisite = True Then
        DoCmd.Close
 
End If
datetemp = Nz(DLookup("datetemp", "tbl_secouriste", "IDsecouriste" = Me.IDsecouristevar), 0)
If datetemp < date Then
    Call update(optionToUpdate, False, "<>")
   End If
 
exit_form_load:
Exit Sub
err_form_load:
MsgBox Err.Description
Resume exit_form_load
 
End Sub
 
Public Sub oui_Click()
Dim optionToUpdate As String
optionToUpdate = "Adminpremierevisite"
'modification de la valeur a true dans la table
                  Call update(optionToUpdate, True, date)
 
DoCmd.Close acForm, "tachedebutjournee", acSaveYes
DoCmd.OpenForm "frm_msgjour", acViewNormal
End Sub
Public Sub update(optionToUpdate As String, valueToUpdate As Boolean, dateToUpdate As Date)
Dim MaTable As Recordset
                    Set MaTable = CurrentDb.OpenRecordset("tbl_secouriste")
                     Do Until MaTable.EOF = True
                     If MaTable("IDsecouriste") = Forms!tachedebutjournee!IDsecouristevar Then
                        MaTable.Edit
                            MaTable(optionToUpdate) = valueToUpdate
                            MaTable("datetemp") = dateToUpdate
                        MaTable.update
                     End If
                        MaTable.MoveNext
                     Loop
                        MaTable.Close
End Sub
robyseb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2011, 06h11   #2
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonjour,
si IDsecouristevar est un nombre
If IsNull(Forms!hiddenform!IDsecouristevar) Or Forms!hiddenform!IDsecouristevar = "" Then traite d'une chaine de caractères

si IDsecouristevar est de type texte
Me.Adminpremierevisite = DLookup("Adminpremierevisite", "Tbl_secouriste", "IDsecouriste" = Me.IDsecouristevar)
doit s'écrire
Me.Adminpremierevisite = DLookup("Adminpremierevisite", "Tbl_secouriste", "IDsecouriste = """ & Me.IDsecouristevar & """")

"IDsecouriste = """ & Me.IDsecouristevar & """" donne IDsecouriste = "ContenuDeIDsecouristevar"
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2011, 06h50   #3
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 176
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 176
Points : 192
Points : 192
D'accord je voit merci beaucoup IDsecouristevar est effectivement une chaine de caractère. soit des noms ! et Adminpremierevisite = boolean

en passant je travail toujour sur mon code qui ne veut rien savoir loll je croit avoir isoler le problème. La fameuse fonction dlookup pour la date ...

je suis sur le net a essayer de trouver une soluce présentement.

Je désire recherché dans la table ,la date inscrite afin d'affiché ou non le formulaire au lancement du menu principal. Donc si le matin l'administrateur a coché "ne plus affiché" le lendemain elle le sera !! pour inscrire cette date dans la table il n'y a pas de trouble, mais pour la lire et la comparer ces une toute autre histoire.
robyseb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2011, 18h03   #4
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 176
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 176
Points : 192
Points : 192
Par défaut Le code fonctionne "Rappel en début de journée"

Bonjour à tous ! J'ai finalement réglé mon problème d'incompatibilité de type. Donc pour ceux que sa intéresse voici le code ... il permet a l'utilisateur suivant sont choix d'ouvrir le formulaire de modification du message du jour ou simplement de fermer le formulaire de rappel.

Je reste ouvert au commentaire sur la façon d'écrire mes codes je vous remercie beaucoup. Assez parlé voici le code fonctionnel :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Option Compare Database
Option Explicit
 
 
 
Public Sub non_Click()
On Error GoTo err_non
Dim datevalue As Date
 
datevalue = Format(date, "dd-mmm-yyyy")
 
    If Me.Adminpremierevisite = True Then
        Call update(True, datevalue)
        DoCmd.Close
    Else
        Call update(False, 0)
        DoCmd.Close acForm, "TacheDebutJournee", acSaveNo
    End If
 
exit_non:
Exit Sub
err_non:
MsgBox Err.Description
Resume exit_non
End Sub
 
Private Sub Form_Load() 'La Fenêtre est appellé depuis display_menu (select case, case2 et case 1)
Dim datetemp As Date
Dim check As Boolean
 
On Error GoTo err_form_load
 
 Me.IDsecouristevar.Value = Forms!hiddenform!IDsecouristevar
 datetemp = Format(date, "dd-mmm-yyyy")
 
     If IsNull("Me.IDsecouristevar") Or Me.IDsecouristevar = "" Then
            MsgBox "Problème lors du (OnLoad_Read)" & _
            vbCrLf & "Contacter Votre Administrateur si le Problème Persiste ! ", vbExclamation, "Échec lors de l'ouverture ! "
            DoCmd.Close acForm, "TacheDebutJournee", acSaveNo
        End If
 
 check = Nz(DLookup("Adminpremierevisite", "Tbl_secouriste", "IDsecouriste= Forms!hiddenform!IDsecouristevar"), "")
 
    If check = True Then
            DoCmd.OpenForm "TacheDebutJournee", , , , , acHidden 'permet de verifier la valeur check avant d'afficher le formulaire
        End If
 
  If datetemp > Nz(DLookup("datetemp", "tbl_secouriste", "IDsecouriste= Forms!hiddenform!IDsecouristevar"), "") Then
        Call update(False, 0)
            DoCmd.OpenForm "TacheDebutJournee", acNormal
        Else
            DoCmd.Close acForm, "TacheDebutJournee", acSaveNo
End If
 
exit_form_load:
Exit Sub
err_form_load:
MsgBox Err.Description
Resume exit_form_load
 
End Sub
 
Private Sub oui_Click()
Dim MaTable As Recordset
Dim datevalue As Date
 
datevalue = Format(date, "dd-mmm-yyyy")
'modification de la valeur a true dans la table
        Call update(True, datevalue)
DoCmd.Close
DoCmd.OpenForm "frm_msgjour", acViewNormal
End Sub
Public Sub update(valueToUpdate As Boolean, dateToUpdate As Date)
 
Dim MaTable As Recordset
                    Set MaTable = CurrentDb.OpenRecordset("tbl_secouriste")
                     Do Until MaTable.EOF = True
                     If MaTable("IDsecouriste") = Forms!hiddenform!IDsecouristevar Then
                        MaTable.Edit
                           MaTable("Adminpremierevisite") = valueToUpdate
                            MaTable("datetemp") = dateToUpdate
                        MaTable.update
                     End If
                        MaTable.MoveNext
                     Loop
                        MaTable.Close
End Sub
robyseb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h17.


 
 
 
 
Partenaires

Hébergement Web