IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

création de table sur base sql distante [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 188
    Points : 89
    Points
    89
    Par défaut création de table sur base sql distante
    bonjour,

    je vous expose mon problème

    j'ai une application access dans laquelle j'ai mis des tables liées qui pointe sur une base sql dont par la force des choses je connais le nom du serveur, le nom d'utilsateur et mot de passe pour me connecter au serveur et le nom de la base sql.

    mais est-ce que je peux créer via mon appli access une nouvelle table directement dans cette base sql ?

    du style

    créer une table nommé TableExemple(champ1 comme texte, champ2 comme nombre) champ nommé NomExemple, NumExemple depuis MaBaseAccess vers \\serveur\NomBaseSql ( nom utilisateur; mot de passe)


    merci pour vos conseils

    bonne journée

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Points : 173
    Points
    173
    Par défaut
    Bonjour,

    Une piste, peut-être, les tutos... entre-autre, celui-ci :

    http://ledzeppii.developpez.com/odbc-access/

  3. #3
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 188
    Points : 89
    Points
    89
    Par défaut
    bonjour,

    ce code bloque sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set tdfNew = Conn.Database.CreateTableDef("Thermo_test")
    avec comme message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur N° 3251 Opération non autorisée pour ce type d'objet

    merci d'avance

    code:
    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
    Private Sub Commande0_Click()
    Dim Wksp As DAO.Workspace, Conn As DAO.Connection, strODBCconn As String
    Dim rs As DAO.Recordset, strSQL As String, lgIdFournisseur As Long
    Dim strUID As String, strPWD As String
    Dim errX As DAO.Error, strErrMsg As String
    Dim tdfNew As TableDef
    Dim prpLoop As Property
     
     
    strUID = "admin"
    strPWD = "pwdok"
     
    On Error GoTo ERRH
     
    Set Wksp = DBEngine.CreateWorkspace("MonWkspODBC", strUID, strPWD, dbUseODBC)
     
    strODBCconn = "ODBC;" & _
              "DSN=DSN_TEST;" & _
              "UID=" & strUID & ";PWD=" & strPWD & ";" & _
              "WSID=" & Environ("COMPUTERNAME") & ";" & _
              "DATABASE=BASE_OK;" & _
              "Network=DBMSSOCN"
     
    Set Conn = Wksp.OpenConnection("DSN_TEST", dbDriverNoPrompt, False, strODBCconn)
     
    Set tdfNew = Conn.Database.CreateTableDef("Thermo_test")
     
    With tdfNew
          .Fields.Append .CreateField("Ligne", dbText)
          .Fields.Append .CreateField("Per", dbText)
          .Fields.Append .CreateField("Graph", dbText)
          .Fields.Append .CreateField("Modif", dbBoolean)
       End With
    ERRH:
     
    strErrMsg = "Erreur N° " & CStr(Err.Number) & " : " & Err.Description
    Select Case Err.Number
     
        Case 3146, 3151, 3154, 3155, 3156, 3157, 3231, 3232, 3234, 3225, 3238, 3247, 3254
            strErrMsg = strErrMsg & vbCrLf & vbCrLf & _
               ">>> Erreurs complémentaires DAO :" & vbCrLf & _
               "======================"
     
            For Each errX In DBEngine.Errors
                strErrMsg = strErrMsg & vbCrLf & Format(errX.Number, "00000") & " : " & errX.Description
            Next
    End Select
     
    MsgBox strErrMsg
     
    End Sub

  4. #4
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 188
    Points : 89
    Points
    89
    Par défaut
    bonjour,


    si cela peut aider !!?

    voici ce que j'ai codé opur arriver à mes fin...passer par une table copy dans ma base access qui me servira de source pour exporter dans la base sql serveur

    sans oublier une fois la table créer sur le sql server de créer le lien sur ma base access et de lui attribuer un index


    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
    Private Sub Commande10_Click()
     
    Dim strConn As String
    Dim db As DAO.Database
    Dim td As DAO.TableDef
    Dim strIndex As String
    Dim strUID As String, strPWD As String
     
     
    DoCmd.SetWarnings False
     
    strUID = "admin"
    strPWD = "pswok"
     
     
     
    strConn = "ODBC;" & _
              "DSN=DSN_NOM;" & _
              "UID=" & strUID & ";PWD=" & strPWD & ";" & _
              "WSID=" & Environ("COMPUTERNAME") & ";" & _
              "DATABASE=BASE_NOM;" & _
              "Network=DBMSSOCN"
     
     
    DoCmd.TransferDatabase acExport, "Base de données ODBC", strConn, _
          acTable, "Thermo_Copy", "Thermo", False, True
     
     
    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
     
     
    Application.RefreshDatabaseWindow
     
    strIndex = "CREATE UNIQUE INDEX __uniqueindex " & _
               "ON  dbo_Thermo ([Id]) WITH PRIMARY"
    db.Execute strIndex, dbFailOnError
     
    db.Close
    Set db = Nothing
     
    DoCmd.SetWarnings True
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. sql server 2005 creation table sur base miroir
    Par s0080223 dans le forum Développement
    Réponses: 3
    Dernier message: 08/01/2010, 14h57
  2. Requête création de table sur base mise en réseau
    Par boss dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/01/2007, 15h49
  3. importer table sur serveur sql de free?
    Par NoobX dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/10/2005, 16h17
  4. Connexion automatique sur base SQL (Login/pass mémorisé)
    Par Fredo67 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/10/2005, 16h24
  5. Requete ASP sur Base SQL
    Par smast2005 dans le forum ASP
    Réponses: 8
    Dernier message: 22/02/2005, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo