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:
Pour créer le chemin j'ai trouver ce bout de code sur internénet
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
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:
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
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