Bonjour tout le monde,

Mon objectif est, via ODBC, d'utiliser un applicatif ACCESS avec une BDD MySQL en local.

Alors j'ai tout bien lié mes tables et me suis connecté à ma base MySQL via ODBC avec les paramètres suivants :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
DatabaseName = "inscriptions"
DatabaseUsername = "inscription"
DatabasePassword = "inscription"
DatabaseServer = "localhost"
tdfcurrent.Connect = "ODBC;DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & DatabaseServer & ";" & _
" DATABASE=" & DatabaseName & ";UID=" & DatabaseUsername & ";PWD=" & DatabasePassword & ";Option=2051;FLAG_AUTO_IS_NULL = 8388608;"
Mais, quand je souhaite ajouter un enregistrement dans ma base via le code VBA suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Dim rsins As New ADODB.Recordset
rsins.Open "INSCRIPTION", CurrentProject.Connection, adOpenDynamic, adLockPessimistic
rsins.AddNew
rsins!ins_enf_no = Form![$famille_enfant]!enf_no
rsins!ins_per = 1
rsins.Save
qui me génère et exécute 2 requêtes SQL :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
INSERT INTO  `inscription`  (`ins_enf_no`,`ins_per`) VALUES (42346,1)
SELECT * FROM `inscription`  WHERE `ins_no` IS NULL
où `ins_no` est de type AUTO INCREMENT NOT NULL.

La 2e requête signifie qu'il cherche la dernière "inscription" insérée, soit celle de la 1e requête. Mais la 2e requête ne fonctionne pas car MyODBC met, au démarrage, la variable sql_auto_is_null à 0.

Même quand je force la valeur de sql_auto_is_null à 1 via VBA :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 Dim sql As String
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & DatabaseServer & ";" & _"DATABASE=" & DatabaseName & ";UID=" & DatabaseUsername & ";PWD=" & DatabasePassword &";OPTION=2051;FLAG_AUTO_IS_NULL = 8388608;"
cn.Open
sql = "SET sql_auto_is_null=1"
Set rs = cn.Execute(sql)
La requête ne fonctionne pas et Access plante.

Si quelqu'un a déjà eu un soucis de ce genre avec une requête du type "WHERE auto_inc IS NULL" et qu'il a résolu le problème, je serai super content de l'aide qu'il pourrait m'apporter.

Merci à tous