Si elle sont transformée en String, il suffit de créer manuellement la table avec le bon type de champ. On procède alors à un éventuel DELETE via la méthode Execute de l'objet Database représentant CurrentDB() puis à un INSERT INTO qui puiserait les données dans le Recordset.
On peut encore procéder à un SELECT INTO selon la nécessité de créer à chaque fois la table.
Pour créer la table via VBA, on peut écrire une fonction, soit par exemple :
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
| Function CreateOracleSeqTable() As Boolean
Dim oDB As DAO.Database
Dim oRS As DAO.Recordset
Dim oTDF As DAO.TableDef
Dim SQL As String
Dim blnAlreadyExists As Boolean
Set oDB = CurrentDb()
SQL = "SELECT * FROM tblHistoryOwnerSeqDB"
On Error Resume Next
Set oRS = oDB.OpenRecordset(SQL, 2)
If Err = 0 Then
oRS.Close
Else
Err.Clear
On Error GoTo L_ErrCreateOracleSeqTable
Set oTDF = oDB.CreateTableDef("tblHistoryOwnerSeqDB")
With oTDF
.Fields.Append .CreateField("SequenceTypeID", dbText, 32)
.Fields.Append .CreateField("ParentSequenceTypeID", dbText, 32)
.Fields.Append .CreateField("SequenceTypeName", dbText, 255)
oDB.TableDefs.Append oTDF
End With
oDB.Close
End If
blnAlreadyExists = True
On Error GoTo 0
L_ExCreateOracleSeqTable:
Set oRS = Nothing
Set oDB = Nothing
CreateOracleSeqTable = blnAlreadyExists
Exit Function
L_ErrCreateOracleSeqTable:
blnAlreadyExists = False
Resume L_ExCreateOracleSeqTable
End Function |
Pour remplir la table, on peut dans la boucle citée en premier faire quelque chose comme :
oDB.Execute SQL, dbFailOnError
où SQL représente la chaîne SQL de la clause INSERT avec les valeurs converties...
Argy
Partager