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 :

Création d'une table archive


Sujet :

Access

  1. #41
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Points : 11
    Points
    11
    Par défaut
    quand je mets pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim db As database
    Dim rArchive As Recordset
    Dim f As Field
    en déclaration, j'ai la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
     
        Dim mess As String
        mess = "Voulez-vous vraiment supprimer l'enregistrement courant?"
        If vbYes = MsgBox(mess, vbYesNo + vbDefaultButton2 + vbQuestion) Then
            Call ArchiverRecord
            Else
            Cancel = CInt(True)
        End If
     
    End Sub
    qui se met en marche ensuite j'ai l'erreur citée

  2. #42
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Points : 74
    Points
    74
    Par défaut
    Voici ce ke j'ai fais si sa peut t'aider:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Compare Database  
    Dim db As Database
    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
    Public Sub ArchiverRecord(prmForm As Form)
     
       Dim db As Database: Set db = CurrentDb
       Dim rArchive As Recordset: Set rArchive = db.OpenRecordset("PRJ0_ARCHIVE")
       Dim f As Field
       rArchive.AddNew
     
       For Each f In prmForm.Recordset.Fields()
          rArchive.Fields(f.Name) = f
       Next f
     
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
     
       rArchive.Update
       rArchive.Close: Set rArchive = Nothing
       db.Close: Set db = Nothing
     
    End Sub
    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
    Private Sub Form_Current() ' contunuellement vérifier la condition ci-dessous
     
       Dim mess As String
    mess = "Voulez-vous vraiment archiver l'enregistrement courrant ?"
     
        If (Me.lst_Chance = "100" Or Me.lst_Chance = "0") Then
              If vbYes = MsgBox(mess, vbYesNo + vbDefaultButton2 + vbQuestion) Then
                    Call ArchiverRecord(Form_PRJ0_BU_INT)
              Else
                    Exit Sub
              End If
        Else
            Exit Sub
        End If
    End Sub
    Voila

  3. #43
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    et comme ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Dim rep As MsgBoxResult
        rep = MsgBox("voulez vous machin chose?", vbYesNo, "question")
        If rep = vbYes Then
    ça revient puet-étre au mème mais pas sur

  4. #44
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par MCarole
    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
    Private Sub Form_Current() ' contunuellement vérifier la condition ci-dessous
     
       Dim mess As String
    mess = "Voulez-vous vraiment archiver l'enregistrement courrant ?"
     
        If (Me.lst_Chance = "100" Or Me.lst_Chance = "0") Then
              If vbYes = MsgBox(mess, vbYesNo + vbDefaultButton2 + vbQuestion) Then
                    Call ArchiverRecord(Form_PRJ0_BU_INT)
              Else
                    Exit Sub
              End If
        Else
            Exit Sub
        End If
    End Sub
    ce qu'il y a dans la parenthèse de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Call ArchiverRecord(Form_PRJO_BU_INT)
    ca correspond à quoi exactement?

  5. #45
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Points : 74
    Points
    74
    Par défaut
    C'est le nom de ton formulaire

  6. #46
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Points : 11
    Points
    11
    Par défaut
    Ok et ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (Me.lst_Chance = "100" Or Me.lst_Chance = "0") Then
    Désolé je suis pas très douée

  7. #47
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Points : 74
    Points
    74
    Par défaut
    sa c'est un specifacation a mon projet , c'est parceque je dois archiver que quand mon taux de chance est a 0 ou 100%

  8. #48
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    A propos de déclaration, histoire de méler un peu le monde il y a 2 librairies utilisées dans Access (et ailleurs) pour accéder aux objets :

    DOA 3.6 et ADO

    DAO est la plus ancienne et celle dont j'ai l'habitude elle est aussi celle que j'ai msi par défaut dans mon environnement MAIS en standard c'est ADO.

    Il y a 3 solutions :

    1) Supprimer la ref (en mode prog, menu outils/ref) et mettre la ref sur DAO.
    2) Prefixer les déclarations du code par DAO ex : dim db as DAO.database
    3) Réécrire le code pour qu'il utilise des objets ADO au lieu de DAO.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #49
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    ADO est devenue le standard a partir d'access 2K, pour le portage de l'appli il vaut mieux l'utiliser pluto que DAO

  10. #50
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Citation Envoyé par Raphaëlle
    Voilà ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Compare Database
    Dim db As database
    Dim rArchive As Recordset
    Dim f As Field
    Option Explicit
    Juste une note de style, il est mieux de mettre les toutes Option en tête de code. Ca rend le code plus lisible.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #51
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    surtout "option explicit"

  12. #52
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Citation Envoyé par polo(31)
    ADO est devenue le standard a partir d'access 2K, pour le portage de l'appli il vaut mieux l'utiliser pluto que DAO
    Trés juste ... mais on a tous nos petites manies :-).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  13. #53
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    il faut savoir évoluer
    "lorsque j'été un enfant, je pensé comme un enfant, mais en devenant un adulte, j'ai mis de coté tous ces enfantillages!"

    oui il manque des truc mais le principe est là

  14. #54
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Points : 11
    Points
    11
    Par défaut
    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
    Option Compare Database
    Dim db As database
    Dim rArchive As Recordset
    Dim f As Field
    Option Explicit
     
    Private Sub Form_current() ' Vérifier la condition ci dessous tout le temps
     
        Dim mess As String
        mess = "Voulez-vous vraiment supprimer l'enregistrement courant?"
     
        If vbYes = MsgBox(mess, vbYesNo + vbDefaultButton2 + vbQuestion) Then
            Call ArchiverRecord
            Else
            Cancel = CInt(True)
        End If
     
    End Sub
     
    Private Sub Efface_Click()
     
    On Error GoTo Err_Efface_Click
     
        DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
        DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
     
    Exit_Efface_Click:
        Exit Sub
     
    Err_Efface_Click:
        MsgBox Err.Description
        Resume Exit_Efface_Click
     
    End Sub
     
    Private Sub ArchiverRecord()
     
        Dim db As Database: Set db = CurrentDb
        Dim rArchive As Recordset: Set rArchive = db.OpenRecordset("Archive")
        Dim f As Field
        rArchive.AddNew
        For Each f In prmForm.Recordset.Fields()
            rArchive.Fields(f.Name) = f
        Next f
     
        DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
        DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
     
        rArchive.Update
        rArchive.Close: Set rArchive = Nothing
        db.Close: Set db = Nothing  
    End Sub
     
    Private Sub ret_menu_Click()
    On Error GoTo Err_ret_menu_Click
       DoCmd.Close
     
    Exit_ret_menu_Click:
        Exit Sub
     
    Err_ret_menu_Click:
        MsgBox Err.Description
        Resume Exit_ret_menu_Click   
    End Sub
    Voici une partie de mon code on pourrait me dire ce qui cloche car l'erreur reste la même et plus aucun de mes boutons ne fonctionnent....

  15. #55
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Oui, oui, oui ... je suis passé du COBOL à Java, rassure toi, mais pour le moment je n'ai vu aucun gain à passer à ADO et ayant des délais assez sérer je préfère y aller à coup sur plutôt que d'expérimenter avec nouvelles librairies et toutes les frustrations d'avoir à REAPPRENDRE comment définir mes objets et retrouver la BONNE propriété parmis les centaines disponibles.

    Et sans doute aussi une bonne dose de faignantise ... nul n'est parfais.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  16. #56
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Form_current() ' Vérifier la condition ci dessous tout le temps
    il vérifie quel condition tout le temp?

    je suis moi mème un gros fainéant par exemple là je suis sencé travaillé

  17. #57
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par polo(31)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Form_current() ' Vérifier la condition ci dessous tout le temps
    C une erreur de ma part g oublier de l'enlever

  18. #58
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    désolé je ne me rappelle pas du début.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If vbYes = MsgBox(mess, vbYesNo + vbDefaultButton2 + vbQuestion) Then
            Call ArchiverRecord
            Cancel = CInt(False)
    Else
            Cancel = CInt(True)
    End If
    et comme ça?

  19. #59
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Dans ArchiverRecord()

    remplacer

    For Each f In prmForm.Recordset.Fields()

    par

    For Each f In Me.Recordset.Fields()

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  20. #60
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    Citation Envoyé par marot_r
    Dans ArchiverRecord()

    remplacer

    For Each f In prmForm.Recordset.Fields()

    par

    For Each f In Me.Recordset.Fields()

    A+
    c'est quoi "prmForm" ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. création d'une table dans une base de donnée accèss
    Par zidenne dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/10/2005, 10h54
  2. Question sur la création d'une table
    Par air dans le forum Oracle
    Réponses: 4
    Dernier message: 23/10/2005, 12h46
  3. Réponses: 4
    Dernier message: 19/10/2005, 11h26
  4. Création d'une table avec foreign key
    Par lepierre dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/09/2004, 14h20
  5. INTERBASE Création d'une table
    Par Corben dans le forum InterBase
    Réponses: 2
    Dernier message: 19/06/2004, 20h55

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