Si votre intention est d'utiliser dans le code dans la VBA vous pouvez essayer quelque chose comme ça
Dim qdef As QueryDef
Dim qdefs As QueryDefs
Dim i As Integer
Dim name As String
Dim qSql As String
Set qdefs = Application.CodeDb.QueryDefs
For Each qdef In qdefs
qname = qdef.name
qSql = qdef.SQL
Next qdef
l'objet QDEF vous donnera également beaucoup plus d'informations sur la requête.
pour C#, vous devrez ajouter l'arbitre au projet pour l'Interop d'accès (Microsoft Access ## Object Library)
et utiliser
private void QueryValues()
{
Microsoft.Office.Interop.Access.Application app = new Application();
app.OpenCurrentDatabase(@"C:\Tests\C#\MS Access\WindowsApplication1\New Microsoft Office Access 2007 Database.accdb", false,"");
QueryDefs qdefs = app.CurrentDb().QueryDefs;
foreach (QueryDef qdef in qdefs)
{
string qname = qdef.Name;
string qSql = qdef.SQL;
}
app.Quit(AcQuitOption.acQuitSaveNone);
}
Savez-vous comment j'obtiendrais l'accès à ce C#? Devrais-je utiliser ADOX? – IanT8