bonjour,
désolé je recré un sujet sur le même thème que le précédent que j'ai taggué résolu alors qu'il a été résolu mais par une méthode autre que celle désirée
ce code ci-dessous bloque sur
db.TableDefs.Append NouvelleTable
par le message
Erreur d'Exécution '3146' ODBC L'Appel à échoué
Y aurait-il une solution ?
merci
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| Dim db As DAO.Database
Dim ws As DAO.Workspace
Dim strConn As String
Dim NouvelleTable As DAO.TableDef
Dim td As DAO.TableDef
Dim Champ As DAO.Field
Dim IndexNew As DAO.Index
Dim strUID As String, strPWD As String
DoCmd.SetWarnings False
strUID = "admin"
strPWD = "pswd_ok"
strConn = "ODBC;" & _
"DSN=DSN_NOM;" & _
"UID=" & strUID & ";PWD=" & strPWD & ";" & _
"WSID=" & Environ("COMPUTERNAME") & ";" & _
"DATABASE=BASE_NOM;" & _
"Network=DBMSSOCN"
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase(DSN_NOM, dbDriverNoPrompt, False, strConn)
Set NouvelleTable = db.CreateTableDef("Thermo")
Set Champ = NouvelleTable.CreateField("Id", dbLong)
Champ.Attributes = dbAutoIncrField
NouvelleTable.Fields.Append Champ
NouvelleTable.Fields.Append NouvelleTable.CreateField("Ligne", dbText)
NouvelleTable.Fields.Append NouvelleTable.CreateField("Per", dbText)
NouvelleTable.Fields.Append NouvelleTable.CreateField("Graph", dbText)
NouvelleTable.Fields.Append NouvelleTable.CreateField("Modif", dbBoolean)
NouvelleTable.Fields.Append NouvelleTable.CreateField("Param", dbText)
Set IndexNew = NouvelleTable.CreateIndex("PK_Id")
IndexNew.Primary = True
IndexNew.Fields.Append IndexNew.CreateField("Id")
NouvelleTable.Indexes.Append IndexNew
db.TableDefs.Append NouvelleTable
db.Close
Set IndexNew = Nothing
Set Champ = Nothing
Set NouvelleTable = Nothing
Set db = Nothing
Set db = CurrentDb
Set td = db.CreateTableDef("dbo_Thermo")
td.Attributes = td.Attributes Or dbAttachSavePWD
td.Connect = strConn
td.SourceTableName = "dbo.Thermo"
db.TableDefs.Append td
Set td = Nothing
db.Close
Set db = Nothing
Application.RefreshDatabaseWindow
DoCmd.SetWarnings True |
Partager