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

Modélisation Discussion :

Valeur nul à une variable


Sujet :

Modélisation

  1. #1
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut Valeur nul à une variable
    Bonjour,
    j'ai un message d'erreur lorsque j'entre la première valeur dans une champs d'un nouvel onglet d'un formulaire
    donc dans un formulaire, j'ai une gestion d'onglet, et dans ces onglet, j'ai plusieur table, et lorsque je change d'onglet j'ai un message qui me dit comme le print screen ci joint je rame là mais pourquoi donc ?

  2. #2
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    Bonjour,

    Au vu du message, je pense que tu as un code VBA quelque part qui affecte à une variable une valeur que ton code va chercher dans ton formulaire par exemple, ou via une autre expression....Le problème est que cette valeur n'est pas renseignée (null) et que la variable a un type de données, un string par exemple, qui n'accepte pas les valeurs nulles.


    Essayes d'excuter en pas à pas ton code; regarde ou se le programme se plante... bref , cherches quelle ligne pose pb...

  3. #3
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    par hasard, ne serait il pas un problème de relation entre mes tables ? (heu, je sais pas hein, c'est juste question)

    pourquoi je dis cela :
    Parce qu'en fait, lorsque je navigue et affiche chacun des feuille de mon onglet les liaison sont parfait avec les tables, mais c'est peut être parfait, parce que j'ai encodé 2 lignes de test (je suis en cours de conception) pour voir si ma navigation fonctionnait, ensuite comme c'est ok, j'ai fait un bouton "nouveau formulaire" et lorsque j'encode directement dans mon fomulaire, j'ai ce message qui apparait à chaque premier champ complèté de de chaque onglet que je sélectionne, mais les donnée s'enregistre bien dans la table malgrés tout... pfff je ne vois pas... j'ai en plus une autre info, "je n'ai pas écris de code vb dans le formlaire... j'ai juste des petite macro sur les bouton suivant, précédant, et nouveau...


    Je sais pas si je m'exprme bien

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 126
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Es-tu certain qu'il n'y a pas de VBA derrière? Que font tes macros? Peux-tu détailler les étapes de tes macros?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    non ne n'ai pas de code sur le formulaire concerné, en macro, je n'utilise que la navigation sur des boutons (navigation entre formulaire)

    le seul code que j'ai sur ce formulaire c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Option Compare Database
     
    Private Sub Bouton_retour_menu_Click()
    On Error GoTo Err_Bouton_retour_menu_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "Menu général"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    Exit_Bouton_retour_menu_Click:
        Exit Sub
     
    Err_Bouton_retour_menu_Click:
        MsgBox Err.Description
        Resume Exit_Bouton_retour_menu_Click
     
    End Sub
    Petit précision, je viens de contrôler que dans mes 2 tables relationnelles, je n'ai pas de champs validé sur "non" dans "NUL INTERDIT" et qu'il n'y a pas non plus de champs indexé... sauf le champs de la table2 qui me sert de liaison...

  6. #6
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    BON AUTRE APPORT D'EXPLICATION QUE JE POURRAI DONNER !

    En pièce jointe, je met 3 copies d'écran:

    Le 1 = mon formulaire contenant les onglets, qui sont liés sur les sous formulaires qui eux sont liés sur le table1 & table2 si j'encode des données directement dans les sous formulaire tout ce passe bien ! mais il y a plusieur sous formulaire, donc pour un aspect convivial pour les utilisateurs, je centralise le tout dans un seul formulaire avec les onglet et le scrooling vertical actif sur chaque onglet...

    Le 2 = Le sous formualire "info-commerciales" qui est lié sur la table1
    Le 3 = le sous formulaire "lancement 2" qui est lié sur la table2

    J'ai fais une relation sur les 2 table pour toujours avoir une coérance de données relatives, et lorsque je consulte l'existant via le formulaire à onglets tout est ok, ce qu ne va pas c'est lorsque je veux entrer de nouvelle données via le formulaire à onglet du print screen 1 ! et j'ai le message figurant sur le print creen 4...

    je désesère...

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 126
    Billets dans le blog
    131
    Par défaut
    Le titre du message que tu donnes au début de ton intervention (FOR140) me fait dire que tu as sûrement autre chose comme code, soit dans le formulaire, soit ailleurs

    [EDIT] C'est possible d'avoir la base en fichier lié? [/EDIT]
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    C'est le nom de ma base que j'ai mis dans les propriété "FOR140" j'ai 3 formulaires principal, 1 = Menu général 2 = Formulaire essuyage (qui contient les onglet de mon problème) et une autre formulaire de recherche ou je n'ai pas de problème

    Sur le menu de démarage, j'ai des code oui, voici un copié coller...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    Option Compare Database
    Option Explicit
    Function OuvreFormulaires(strNomForm As String) As Integer
    ' Cette fonction est utilisée par l'événement Click des boutons de
    ' commande qui ouvrent les formulaires dans le menu général. Utiliser une
    ' fonction est plus efficace que de répéter le même code dans plusieurs
    ' procédures événementielles.
    On Error GoTo Err_OuvreFormulaires
     
        ' Ouvre le formulaire spécifié.
        DoCmd.OpenForm strNomForm
     
    Quitte_OuvreFormulaires:
        Exit Function
     
    Err_OuvreFormulaires:
        MsgBox Err.Description
        Resume Quitte_OuvreFormulaires
     
    End Function
     
    Private Sub AfficheFenêtreBaseDeDonnées_Click()
    ' Ce code est créé en partie par l'Assistant Bouton de commande.
    On Error GoTo Err_AfficheFenêtreBaseDeDonnées_Click
     
        Dim strNomDoc As String
     
        strNomDoc = "Catégories"
     
        ' Ferme le formulaire Menu général.
        DoCmd.Close
     
        ' Donne le focus à la fenêtre Base de données; sélectionne la table
        ' Catégories (premier formulaire dans la liste).
        DoCmd.SelectObject acTable, strNomDoc, True
     
    Quitte_AfficheFenêtreBaseDeDonnées_Click:
        Exit Sub
     
    Err_AfficheFenêtreBaseDeDonnées_Click:
        MsgBox Err.Description
        Resume Quitte_AfficheFenêtreBaseDeDonnées_Click
     
    End Sub
     
    Private Sub cmdConfig_Click()
    On Error Resume Next
     
    Me.Tag = ""
    DoCmd.OpenForm "frmPwd", , , , , acDialog
    If Me.Tag = "" Then Exit Sub 'no password
    DoCmd.OpenForm "frmConfig", , , , , acDialog
     
    End Sub
    Private Sub cmdHTML_Click()
    'Export HTML
    Dim htmlPath As String 'path to generated html files
    Dim ret&
    Dim db As Database
    Dim rst As Recordset
    Dim fld As Field
     
    On Error Resume Next
     
    Me.Tag = ""
    DoCmd.OpenForm "frmPwd", , , , , acDialog
    If Me.Tag = "" Then Exit Sub 'no password
     
    Set db = CurrentDb
    Set rst = db.OpenRecordset("tblConfig")
    Set fld = rst.Fields(0)
    htmlPath = fld.Value
    Set fld = Nothing
    Set rst = Nothing
    Set db = Nothing
     
     
    ret = MsgBox("Vous allez exporter les informations de la base de donnée, êtes-vous sûr ?", vbYesNo, "Exportation HTML")
    If ret = vbYes Then
        If Trim$(htmlPath) = "" Then
            MsgBox "Exportation décommandée! Le chemin d'exportation non defini !"
            Exit Sub
        Else
            If Right(htmlPath, 1) <> "\" Then htmlPath = htmlPath & "\"
            FillTemplate htmlPath
        End If
    End If
    End Sub
     
    Private Sub cmdRecherche_Click()
    On Error GoTo Err_recherche_Click
     
    Dim stSQL As String, txtR As String, txtC As String
    Dim stDocName As String
    Dim db As Database
    Dim rst As Recordset
    Dim fld As Field
     
    stSQL = ""
    txtRecherche.SetFocus
    txtR = txtRecherche.Text
    cboChamp.SetFocus
    txtC = cboChamp.Text
     
    Set db = CurrentDb
    Set rst = db.OpenRecordset("Table1")
    Set fld = rst.Fields(txtC)
        If fld.Type = dbText Or fld.Type = dbMemo Or fld.Type = dbChar Then
            txtR = "'" & txtR & "*'"
        Else
            txtR = "'" & txtR & "'"
        End If
    Set fld = Nothing
    Set rst = Nothing
    Set db = Nothing
     
    stSQL = stSQL & "`" & txtC & "` Like " & txtR
    stDocName = "Formulaire_Essuyage"
     
    DoCmd.OpenForm stDocName, , , stSQL
     
     
    Exit_recherche_Click:
        Exit Sub
     
    Err_recherche_Click:
        MsgBox Err.Description
        Resume Exit_recherche_Click
     
    End Sub
     
    Private Sub QuitterMicrosoftAccess_Click()
    ' Ce code est créé par l'Assistant Bouton de commande.
    On Error GoTo Err_QuitterMicrosoftAccess_Click
     
        ' Quitte Microsoft Access.
        DoCmd.Quit
     
    Quitte_QuitterMicrosoftAccess_Click:
        Exit Sub
     
    Err_QuitterMicrosoftAccess_Click:
        MsgBox Err.Description
        Resume Quitte_QuitterMicrosoftAccess_Click
     
    End Sub
     
     
    Private Sub Commande20_Click()
    On Error GoTo Err_Commande20_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "Fiche"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    Exit_Commande20_Click:
        Exit Sub
     
    Err_Commande20_Click:
        MsgBox Err.Description
        Resume Exit_Commande20_Click
     
    End Sub
    Private Sub FillTemplate(ByVal fhtml$)
    Dim tmp$, repl$, template$, templorig$, result$
    Dim perc As Single, cnt As Long, i As Long
    Dim db As Database
    Dim rst As Recordset
    Dim fld As Field
    Dim fileName$
     
    On Error Resume Next
     
    Open "C:\Template.html" For Input As #1
        template = Input(LOF(1), #1)
    Close #1
    templorig = template
     
    QuitterMicrosoftAccess.SetFocus
    cmdHTML.Visible = False
    'cmdHTML.Enabled = False
     
    Set db = CurrentDb
    Set rst = db.OpenRecordset("Table Fiche Produit")
     
    lblPerc.Caption = "0.0 %"
    cnt = rst.RecordCount
    If cnt <= 0 Then
        MsgBox "Table Fiche Produit is empty !"
        Set fld = Nothing
        Set rst = Nothing
        Set db = Nothing
        cmdHTML.Visible = True
        'cmdHTML.Enabled = True
        Exit Sub
    Else
        'erase all files
        Kill fhtml & "*.html"
     
        rst.MoveLast
        rst.MoveFirst
     
        i = 0
        Do While Not rst.EOF
            tmp = ""
            If Trim(rst.Fields("N/REF").Value) = "" Or IsNull(rst.Fields("N/REF").Value) Then 'if we don't have a N/REF
                fileName = "NoNREF.html"
            Else
                fileName = rst.Fields("N/REF").Value & ".html"
            End If
     
            'tmp = tmp & "<table cellspacing='1' cellpadding='2' bgcolor='#808080' border='0'>"
            template = templorig
            For Each fld In rst.Fields
                'tmp = tmp & "<tr><td bgcolor='F0F0F0'>" & fld.Name & "</td><td bgcolor='FFFFFF'>" & fld.Value & "</td></tr>"
                If IsNull(fld.Value) Then
                    repl = "&nbsp;"
                Else
                    repl = fld.Value
                End If
                tmp = Replace(template, "$" & fld.Name, repl, , , vbTextCompare)
                If tmp <> "" Then template = tmp
     
            Next fld
            'tmp = tmp & "</table><BR>"
            'here we save the html file
            If tmp <> "" Then
                Open fhtml & fileName For Append As #1
                    Print #1, tmp
                Close #1
            End If
            'update progress bar
            perc = i / cnt
            prg.Width = perc * framePrg.Width
            lblPerc.Caption = Format$(perc * 100, "0.0") & " %"
            i = i + 1
            DoEvents
            'uncomment next line just for testing phase!!!
            'Exit Do
            rst.MoveNext
        Loop
    End If
     
    Set fld = Nothing
    Set rst = Nothing
    Set db = Nothing
     
    cmdHTML.Visible = True
    'cmdHTML.Enabled = True
    MsgBox "La procédure d'exportation est correctement terminée..."
     
    End Sub
     
    Private Sub recherche_Click()
    On Error GoTo Err_recherche_Click
     
    If Not IsNumeric(txtRecherche) Or Trim(txtRecherche) = "" Then
        MsgBox "Vous n'avez pas tapé un numéro valide !"
        Exit Sub
    End If
     
    '    Screen.PreviousControl.SetFocus
    '    DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "Fiche"
        stLinkCriteria = "`N/REF` = " & txtRecherche
     
     
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
     
    Exit_recherche_Click:
        Exit Sub
     
    Err_recherche_Click:
        MsgBox Err.Description
        Resume Exit_recherche_Click
     
    End Sub
    Private Sub Command40_Click()
    On Error GoTo Err_Command40_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "Euréponge"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    Exit_Command40_Click:
        Exit Sub
     
    Err_Command40_Click:
        MsgBox Err.Description
        Resume Exit_Command40_Click
     
    End Sub
    La base fait 25 méga, donc je ne sais pas le mettre en fichier lié

  9. #9
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    j'ai supprimé du code ce qui ne sert plus à rien (pour la page d'accueille qui contient un moteur de recherche et les bouton de navigation sur les formulaires)



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Function OuvreFormulaires(strNomForm As String) As Integer
    On Error GoTo Err_OuvreFormulaires
        DoCmd.OpenForm strNomForm
    Quitte_OuvreFormulaires:
        Exit Function
    Err_OuvreFormulaires:
        MsgBox Err.Description
        Resume Quitte_OuvreFormulaires
    End Function
     
    Private Sub AfficheFenêtreBaseDeDonnées_Click()
    On Error GoTo Err_AfficheFenêtreBaseDeDonnées_Click
        Dim strNomDoc As String
        strNomDoc = "Catégories"
        DoCmd.Close
        DoCmd.SelectObject acTable, strNomDoc, True
    Quitte_AfficheFenêtreBaseDeDonnées_Click:
        Exit Sub
    Err_AfficheFenêtreBaseDeDonnées_Click:
        MsgBox Err.Description
        Resume Quitte_AfficheFenêtreBaseDeDonnées_Click
    End Sub
     
    Private Sub cmdConfig_Click()
    On Error Resume Next
    Me.Tag = ""
    DoCmd.OpenForm "frmPwd", , , , , acDialog
    If Me.Tag = "" Then Exit Sub 'no password
    DoCmd.OpenForm "frmConfig", , , , , acDialog
    End Sub
     
    Private Sub cmdRecherche_Click()
    On Error GoTo Err_recherche_Click
     
    Dim stSQL As String, txtR As String, txtC As String
    Dim stDocName As String
    Dim db As Database
    Dim rst As Recordset
    Dim fld As Field
     
    stSQL = ""
    txtRecherche.SetFocus
    txtR = txtRecherche.Text
    cboChamp.SetFocus
    txtC = cboChamp.Text
     
    Set db = CurrentDb
    Set rst = db.OpenRecordset("Table1")
    Set fld = rst.Fields(txtC)
        If fld.Type = dbText Or fld.Type = dbMemo Or fld.Type = dbChar Then
            txtR = "'" & txtR & "*'"
        Else
            txtR = "'" & txtR & "'"
        End If
    Set fld = Nothing
    Set rst = Nothing
    Set db = Nothing
     
    stSQL = stSQL & "`" & txtC & "` Like " & txtR
    stDocName = "Formulaire_Essuyage"
     
    DoCmd.OpenForm stDocName, , , stSQL
     
     
    Exit_recherche_Click:
        Exit Sub
     
    Err_recherche_Click:
        MsgBox Err.Description
        Resume Exit_recherche_Click
     
    End Sub
     
    Private Sub Commande20_Click()
    On Error GoTo Err_Commande20_Click
        Dim stDocName As String
        Dim stLinkCriteria As String
        stDocName = "Fiche"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    Exit_Commande20_Click:
        Exit Sub
    Err_Commande20_Click:
        MsgBox Err.Description
        Resume Exit_Commande20_Click
    End Sub

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 126
    Billets dans le blog
    131
    Par défaut
    Sur le contrôle Numéro de formulaire, as-tu des gestions d'évènements? Si oui, lesquelles?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    c'est ceci dont tu parles ? (pièces jointe)

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 126
    Billets dans le blog
    131
    Par défaut
    Tu ne sais pas mettre une base d'exemple nettoyée (juste deux ou trois données) compactée et zippée? Sinon, on va tourner en rond
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #13
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    voici, je sais pas si ca passe

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 126
    Billets dans le blog
    131
    Par défaut
    Tu ne dois pas du tout procéder comme tu le fais...

    Les sous-formulaires avec champs fils/champs père sont utilisés lorsque tu veux lier des données d'une table avec ceux d'une autre au travers d'un champ commun (cas type: les données d'une table Factures_Lignes dans un sous-formulaire avec ceux d'une table Facture_Entetes dans un formulaire parent, le contrôle "sous-formulaire" étant lié à son parent par le numéro de facture, par exemple).

    Dans ton cas, tu ne dois pas utiliser des formulaires dans tes onglets, mais tu dois placer les contrôles directement sur les onglets, puisqu'ils se rapportent au même enregistrement à travers tous les onglets. Les onglets ne servent ici qu'à une découpe ergonomique...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    ok, si je comprend bie, je dois alors supprimer mes sous formulaire et récupèrer tout les champs et les intégrer directement des les onglet, mais si je ne me trompe pas, je n'aurais pas de formulaire prédécoupé ? je voulais une feuille d'onglet avec le scroling verticale pour ne pas avoir un long formulaire (haut)
    possible ?

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 126
    Billets dans le blog
    131
    Par défaut
    En analysant un peu tes données, et au vu des intitulés des champs (au risque de me faire descendre par d'autres (voire par toi) et de te donner du travail pour les vacances...), j'étudierais d'abord calmement ce que je veux réaliser.



    Je me pencherais d'abord sur la structure de mes données, et j'essaierais de scinder mes tables en petites entités...
    Une pour les produits (dimensions, numéro, libellé, ...)
    Une pour les composants (composant 1 Eponge, ...)
    Une pour les clients
    Une pour les fournisseurs
    Une pour les demandes (qtés annuelles, visa chef de production...)

    J'étudierais les relations entre les tables
    Je détaillerais les séquences de saisie d'information, l'ergonomie des formulaires ...

    J'utiliserais des noms courts pour mes champs (les noms à rallonge avec espaces et caractères accentués sont à proscrire sans exception)...

    Bref, d'abord du travail intellectuel, puis on passe à l'ordi et on met en oeuvre.

    C'est le meilleur conseil que je peux te donner à ce stade. Continue sur les bases que tu m'as communiquées et tu vas droit dans le
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  17. #17
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    en fait il n'y a pas trop à se casser la tête, il faut juste une gestion des donnée, haujourd'hui tout est fait avec un fichier WOrd tout simple, mon souhaite et d'évité les envois intenpestif de fichier par mail ce qui surcharge les boites mail... d'ou l'intéret de centraliser les données.
    J'ai murement réfléchi à la structure. et il n'en faudrait pas plus pour que cela fonctionne.
    j'ai aussi testé de faire des table par service, mais certe, ce n'est pas forcément necessaire. c'est une structure qui doit fonctionner 3 années apres se sera intégré dans SAP !

    Ha oui j'oubliais, il n'est pas possible de mettre un scrolling vertical dans les onglets ?

  18. #18
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 126
    Billets dans le blog
    131
    Par défaut
    Ce qui m'étonne dans ta structure, c'est que l'on trouve des données assez hétéroclites dans la même table.

    On trouve, pèle-mêle
    des données relatives à un produit (dimensions, composants, ...)
    des données (par groupe de 13 lignes) pour des étapes, des codes d'étapes et des descriptions d'étapes...
    des données relatives à des contrats d'achats ou de vente (date, qté annuelle,...)
    des valorisations de stock
    des prix de revient sur qté prévisionnelles
    des données liées à des UVC (+ de 30 lignes)

    Cette table est liée à une autre qui en est manifestement le prolongement, dans laquelle on retrouve
    6 champs par nomenclature (15 nomenclatures => 90 champs)
    des quantités de réapprovisionnement...

    Soit, en tout, +/- 370 champs, avec des noms de champ du type
    PR Marge estimée (€), N° 8 étape instruction d'assemblage, Nomenclature multi niveaux N° d'article (4), Date d'approbation responsable Data maagement...

    Tu ne peux pas t'en sortir avec cela. C'est tout simplement mission impossible.


    Pour les onglets, non, il n'y a pas de barres de défilement
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  19. #19
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    que peux tu proposer ?

  20. #20
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 126
    Billets dans le blog
    131
    Par défaut
    Pas grand-chose d'autre que ce que j'ai dit plus haut.

    Découpage des tables en entités (produits, commandes, clients, ...)
    Création des relations entre les tables (intégrité référencielle...)
    Création des tables avec des noms courts (trigrammes ou autre convention)
    Ergonomie de saisie au travers de formulaires basés sur la nouvelle structure de ta base

    Pour un truc qui doit tourner trois ans puis passer sur SAP, je pense que cela vaut le coût de bien faire les choses...

    Le jour ou tu dois passer des tables de la structure actuelle sur SAP, il y aura du sang et des larmes (et à mon avis, pas loin d'un réencodage pur et dur et/ou d'une perte de données...)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 09h49
  3. Réponses: 2
    Dernier message: 16/08/2005, 09h43
  4. afficher dans une boite de dialogue la valeur d'une variable
    Par micknic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/07/2005, 09h25
  5. Intercepter le changement de valeur d'une variable
    Par Captain_JS dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/01/2005, 08h04

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