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

Macros et VBA Excel Discussion :

Gestion de base de données .mdb


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut Gestion de base de données .mdb
    Lu ter tous.

    Je fais appel à vous because je patine.
    Le sujet n'est pas très original: une gestion de base de données avec excel.

    Le contexte en premier lieu...
    En fais j'ai créé deux questionnaires avec excel. Ce sont des questionnaire type qcm et question ouverte.
    Ce que je veut faire, c'est extraire les infos du questionnaire, indexer le tout dans une base de données access.
    Je traite les infos grâce avec des macro écrite en VB.

    En fait j'ai besoin de lire dans la base de donner le numéro du dernier questionnaire pour pouvoir attribuer le numéro du prochain questionnaire de manière entièrement automatique.
    Pour ce faire, je charge la base de données dans une feuille. Celle-ci est triée par ordre croissant de numéro de fiche. Je descend tout le tableau, je prend la dernière valeur de numéro de fiche, je l'incrémente de 1.
    Cette valeur est entrer dans le questionnaire.
    Ce que voudrais faire, c'est indiquer le chemin de la base de données au démarrage, de façon à pour continuer à utiliser le programme en changeant d'emplacement la base de données

    Voila le (gros) bout de code que j'ai fait:

    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
    Private Sub fiche_client_Click()
    '
    '
    ' paramtrage pour entrer info dans BdD
    '
     
        ' feuille à ouvrir
        '
        Sheets("BdD_tmp_client").Visible = True
        Sheets("BdD_client").Visible = True
        Sheets("fiche_client").Visible = True
     
        ' Mise en forme BdD_tmp
        '
        Sheets("BdD_tmp_client").Select
        Cells.Select
        Application.CutCopyMode = False
        Selection.ClearContents
        Selection.QueryTable.Delete
        Range("A1").Select
     
     
        ' Chargement de la BdD
        '
        Sheets("BdD_tmp_client").Activate
        Range("A1").Activate
     
        With ActiveSheet.QueryTables.add(Connection:=Array(Array( _
            "ODBC;DSN=MS Access Database;DBQ=Chemin_BdD_c." _
            ), Array( _
            "mdb;DefaultDir=G:\Service technique clients\Projet document création produit\formulaire\fiches\SQL;DriverId=25;FIL=MS Access;Max" _
            ), Array("BufferSize=2048;PageTimeout=5;")), Destination:=Range("A1"))
            .CommandText = Array( _
            "SELECT Table1.Numéro_fiche, Table1.Client, Table1.Nom_rapporteur, Table1.Type_de_machine, Table1.Domaine, Table1.Equipement_démarché, Table1.Mots_clé, Table1.Date_de_création, Table1.WT_RECID" & Chr(13) & "" & Chr(10) & "FROM Ta" _
            , "ble1 Table1" & Chr(13) & "" & Chr(10) & "ORDER BY Table1.Numéro_fiche")
            .Name = "Lancer la requête à partir de MS Access Database"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = True
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .Refresh BackgroundQuery:=False
        End With
     
     
        ' Création du numéro de fiche
        '
        Sheets("BdD_tmp_client").Select
        ActiveSheet.Range("A1").Offset(ActiveSheet.Range("A1").CurrentRegion.Rows.Count, 0).Select
        ActiveCell.Offset(0, 0) = ActiveCell.Offset(-1, 0).Value + 1
        ActiveCell.Offset(0, 0).Activate
        Selection.Copy
        Sheets("fiche_client").Select
        Range("F7").Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
           SkipBlanks:=False, Transpose:=False
     
     
        ' création date
        '
        Sheets("BdD_client").Select
        Range("A1").Select
        Selection.Copy
        Sheets("fiche_client").Select
        Range("E5").Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
     
        ' effacement des données temporaire
        '
        Sheets("BdD_tmp_client").Select
        Cells.Select
        Application.CutCopyMode = False
        Selection.ClearContents
        Selection.QueryTable.Delete
        Range("A1").Select
     
        ' mise en forme du tableau
        '
        Sheets("BdD_client").Select
        Range("B3,L5").Select
        Selection.ClearContents
     
        ' fermer les feuilles
        '
        Sheets("Démarage").Visible = False
        Sheets("fiche_idée").Visible = False
        Sheets("BdD_tmp_client").Visible = False
        Sheets("BdD_client").Visible = False
        Sheets("BdD_tmp_idée").Visible = False
        Sheets("BdD_idée").Visible = False
        Sheets("menu").Visible = False
     
        ' feuille active
        '
        Sheets("fiche_client").Activate
        Range("N3").Activate
     
        Unload Me
     
    End Sub

    Pour créer le chemin j'ai trouver ce bout de code sur internénet

    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
    Private Sub Chemin_BdD_idée_Click()
     
    Dim Fenetre As String
     
    Fenetre = Application.GetOpenFilename _
            (FileFilter:="Tous les fichiers (*.*),*.* ", _
             Title:="Sélectionnez un fichier")
     
       Chemin_BdD_i = Left(Fenetre, InStrRev(Fenetre, "\", -1))
     
          Démarage.Hide
     
       MsgBox ("Le Chemin a bien été modifié")
     
     
       Démarage.Show
     
    End Sub
    Et je remplace le chemin dans la première fonction par Chemin_BdD_i. Et miracle: ... ça marche pas.
    La base de données s'appelle fiche_SQL.mdb
    Quand je la selectionne avec la fenêtre et que je cherche à charger la base de données dans une feuille, j'ai un message d'erreur qui me dis que la base de donnée Chemin.BdD_i.mdb est introuvable.


    PLEASE HELP

    Merci de votre attention

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    As-tu regardé le contenu de la variable Chemin_BdD_i à l'execution ?

Discussions similaires

  1. Compresser une base de données *.mdb sans Access
    Par Fbartolo dans le forum C++Builder
    Réponses: 12
    Dernier message: 15/03/2009, 14h12
  2. Creer un fichier base de données .MDB Access
    Par Invité dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/05/2007, 11h36
  3. java et la gestion des bases de donnée access
    Par alita dans le forum JDBC
    Réponses: 1
    Dernier message: 24/03/2007, 18h21
  4. Réponses: 2
    Dernier message: 31/05/2006, 14h37

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