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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
db.TableDefs.Append NouvelleTable
par le message

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Erreur d'Exécution '3146' ODBC L'Appel à échoué
Y aurait-il une solution ?

merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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