Bonjour à tous.
J'aimerais savoir s'il est possible de prendre le contenu d'une requête SQL venant d'un BD Access et l'envoyer dans une feuille EXCEL ????
Merci
AngelEvil!
Bonjour à tous.
J'aimerais savoir s'il est possible de prendre le contenu d'une requête SQL venant d'un BD Access et l'envoyer dans une feuille EXCEL ????
Merci
AngelEvil!
Oui, c'est possible.
Quel est ton point de blocage ? Quel est ton niveau de connaissance sur les accès base de données ?
Je sais programmer en mode connecté (lecture et action dans les enregistrement) et non connecté (lecture seulement) en .NET.
J'ai aussi programmé dans le passé en DAO et ADO avec VB 6.0.
C'est la première fois que je vais travailler avec du EXCEL dans un programme.
Je cherche un bout de code pour me montrer comment créer en mémoire un classeur excel et l'insertion des données venant d'une requête faite sur des tables dans une BD Access.
Voilà la raison de ma question.
Merci.
AngelEvil!
Une FAQ répond à ta question : Comment importer les données d'une table Access vers un nouveau classeur Excel ?
C'est du VBA, mais tu devrais pouvoir le transcrire en VB.
Merci
je vais lire cela avec attention!
AngelEvil!
Bonjour!
Je sais que ça fait quelques jours que j'ai posté ici.... mais j'ai essayé de transférer le contenu d'une requête dans un fichier Excel....
J'ai codé ceci et ca bloque quelque part....
Le code bloque dans try avec cette ligne de code : DtAdapteurRapp.Fill(DtsetRapp, "Boites") Ca me renvoie dans le catch....
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 Dim requete As String = vbEmpty Dim nom_fichier As String = vbEmpty If Radio_Btn_Date.Checked = True Then requete = "select * [Excel 8.0;" & _ "Database=" & Chemin_XLS & "\" & nom_fichier & "].[" & "Resultat requete" & "] from Boites where date_boite between #" & Me.DTP_Date_Depart_Rapport.Value.Date & "# and #" & Me.DTP_Date_Fin_Rapport.Value.Date & "# order by date_boite" nom_fichier = "Liste_Entitees_Date_Debut_Fin_" & System.DateTime.Now & ".xls" ElseIf Radio_Btn_Tout.Checked = True Then requete = "select * [Excel 8.0;" & _ "Database=" & Chemin_XLS & "\" & nom_fichier & "].[" & "Resultat requete" & "]from Boites order by date_boite" nom_fichier = "Liste_Complete_Entitees_" & System.DateTime.Now & ".xls" ElseIf Radio_Btn_Erreurs.Checked = True Then requete = "select * [Excel 8.0;" & _ "Database=" & Chemin_XLS & "\" & nom_fichier & "].[" & "Resultat requete" & "] from Boites order by date_boite where probleme = " & True & "" nom_fichier = "Liste_Entitees_En_Probleme_" & System.DateTime.Now & ".xls" End If ' Mode non connecté Dim strCon$ = CStr("provider=microsoft.jet.oledb.4.0;" & "data source= " & chemin & BD & ";") Dim CnRapp As New OleDb.OleDbConnection Dim CmdR As OleDb.OleDbCommand Dim DtAdapteurRapp As New OleDb.OleDbDataAdapter Dim DtsetRapp As New DataSet() CnRapp.ConnectionString = strCon CnRapp.Open() CmdR = CnRapp.CreateCommand() 'Creation de commande 'Transfert les données d'Access vers Excel CmdR.CommandText = requete Try DtsetRapp = New DataSet DtAdapteurRapp = New OleDb.OleDbDataAdapter DtAdapteurRapp.SelectCommand = CmdR DtAdapteurRapp.Fill(DtsetRapp, "Boites") CmdR = Nothing CnRapp = Nothing DtsetRapp = Nothing DtAdapteurRapp = Nothing Catch CmdR = Nothing CnRapp = Nothing DtsetRapp = Nothing DtAdapteurRapp = Nothing End Try
Avez-vous une idée ou serait le problème ?
Merci!
AngelEvil
Si deja, tu ne faisais pas ton try/catch comme ca:
tu pourrais au moins recuperer l'exception exacte...le premier problème, c'est donc d'arrèter l'exception swallowing, et de faire quelque chose comme (pas beaucoup mieux, mais pour faire avancer le shmilblik):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Catch CmdR = Nothing
Une fois que tu connais l'exception remontée, on peut essayer de voir d'ou ca vient, sans l'erreur, c'est pas du debuggage, c'est de la voyance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Catch ex As Exception MessageBox.Show("message : " & ex.Message & vbcrlf & "stack: " & ex.StackTrace) CmdR = Nothing
Voici le message d'erreur que j'ai pu avoir en rajoutant le code que vous m'avez donné.... C'est l'image que j'ai ajouté....
La ligne ou ca "bug" c'est ceci : DtAdapteurRapp.Fill(DtsetRapp, "Boites")
Merci de m'aider
AngelEvil!
ok, j'avais pas vu...
mais en fait, ta requête sql n'est pas bonne...
tu fais:
au lieu de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 "select * [Excel 8.0;" & "Database=" & Chemin_XLS & _ "\" & nom_fichier & "].[" & "Resultat requete" & "] from Boites where date_boite between #" & _ Me.DTP_Date_Depart_Rapport.Value.Date & "# and #" & Me.DTP_Date_Fin_Rapport.Value.Date & "# order by date_boite"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 "select * INTO [Excel 8.0;" & "Database=" & Chemin_XLS & _ "\" & nom_fichier & "].[" & "Resultat requete" & "] from Boites where date_boite between #" & _ Me.DTP_Date_Depart_Rapport.Value.Date & "# and #" & Me.DTP_Date_Fin_Rapport.Value.Date & "# order by date_boite"
Bonjour,
Merci pour le INTO ! Ça réglé le problème
Mais j'ai une interrogation.... Est-ce que c'est possible lors de la requête de mettre du code pour mettre les champs du fichier Excel à la largeur maximale des champs affichés ? genre autosize si possible....
Merci
J'ai créé ce code lors d'une msgbox yes/no
la question du msgbox est simple : voulez-vous voir le contenu du fichier excel?"
si c'est oui le code suivant est demandé
J'ai essayé du code comme : wsexcel.autosize = true et ça ne fonctionne pas.
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 ouvrir_Excel(ByVal chemin_Excel) Dim appExcel As Object 'Application Excel Dim wbExcel As Object 'Classeur Excel Dim wsExcel As Object 'Feuille Excel ' déclaration d'une variable objet de type classeur Excel appExcel = CreateObject("Excel.Application") 'Ouverture d'un fichier Excel wbExcel = appExcel.Workbooks.Open(chemin_Excel) 'wsExcel correspond à la première feuille du fichier wsExcel = wbExcel.Worksheets(1) wsExcel.visible = True appExcel.Visible = True End Sub
Quelle propriété je dois mettre dans le code pour faire le autosize ?
Merci
AngelEvil!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager