J'ai une base de données Access et un formulaire dans Excel VBA. Toutes les données que je saisis dans le DB sont entrées via le formulaire VBA.Comment exporter les résultats d'une instruction SQL dans un fichier Excel
Cette base de données contient toutes les cartes d'avantages que nous avons déjà reçues cette année dans l'entreprise. Mais le même employé peut demander la carte deux fois ou plus, donc nous aurons plus d'un enregistrement sur la base de données pour lui. Ce dont j'ai besoin est quand le nombre d'enregistrements est supérieur à un, le résultat de l'instruction SQL devrait apparaître dans un rapport Excel.
J'utilise l'instruction SELECT (*) COUNT
pour savoir s'il existe plusieurs enregistrements compatibles avec le critère de recherche. Mais je ne peux pas faire apparaître le résultat dans un fichier Excel.
Voici mon code:
Public Function Relatorio()
Dim sql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim rel As String
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & enderecoDB & ";Jet OLEDB:Database"
cn.Open
Set rs = New ADODB.Recordset
sql = "INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=" & enderecoDB & ";', 'SELECT * FROM [Planilha1$]') SELECT * FROM controle WHERE BP = " & controlectform.nmbpbox.Value & ";"
rs.Open sql, cn
End Function
Quand je lance ce code, il me donne de dire quelque chose comme un message:
Impossible de localiser la sortie du tableau OPENROWSET
Je ne suis pas en mesure d'installer de nouveaux programmes, donc je dois le faire en utilisant uniquement Excel VBA et la base de données Access.
Comment est-ce que je peux faire ce travail?
essayer de mettre cette question dans l'accès en vue et que d'interroger la nouvelle vue de vba – Asaf
J'utilise un champ sous la forme de faire la « select ». Même si je mets la requête en accès, puis-je continuer à utiliser le champ de formulaire pour faire le "select"? –