Bonjour,

Je sollicite vos lumières pour modifier une application que je reprends.
Je voudrais remplacer le peu de code ADO qu'il reste par du DAO.
Tout le reste du code utilise DAO pour se connecter à la base de données.
Il s'agit d'une base de données MySQL.
L'application est en access 2010.
J'ai ces procédures:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Sub ODBC_Connect()
Dim strConnect As String
strConnect = whatever
Set wrkAcc = CreateWorkspace("", "admin", "", dbUseJet)
Set DbODBC = wrkAcc.OpenDatabase(vbNullString, False, False, strConnect)
End Sub
 
Sub ODBC_Disconnect()
DbODBC.Close
wrkAcc.Close
Set DbODBC = Nothing
Set wrkAcc = Nothing
End Sub
J'ai une variable Public rs_dao As DAO.Recordset
et les requêtes
Set rs_dao = DbODBC.OpenRecordset("select .....") fonctionne parfaitement

j'ai donc remplacé toutes les requêtes existantes qui se faisaient en ADO par ces requêtes (juste dû changer les 'LIMIT 1' en 'top 1'. Quelques 'insert into' ne fonctionnent pas mais en modifiant le format des dates, je devrais pouvoir y arriver.


Par contre, j'ai un problème pour remplacer les lignes comme celle-ci:
ObjConn.Execute ("CREATE TABLE reference" & se & " ( PRIMARY KEY (NumSiege)) SELECT * FROM fauteuil;"), sachant que objconn est créé par

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Public Sub ADO_Connect()
Set ObjConn = New ADODB.Connection
Let ObjConn.ConnectionString = whatever
 ObjConn.Open
End Sub
 
Public Sub ADO_Disconnect()
    ObjConn.Close
    Set ObjConn = Nothing
End Sub
j'ai testé avec un AS, avec un like, j'ai testé le create table simple avec le nom de chaque colonne et leur type, même mettre un simple create table avec une seule colonne ne fonctionne pas.

Cela n'est-il pas faisable ?


Merci
(je suis consciente qu'une création de table en dupliquant une autre peut révéler un problème de structure de la base de données )