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 Discussion :

ADO connection SQLserver 64 bits


Sujet :

VBA

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2021
    Messages : 5
    Par défaut ADO connection SQLserver 64 bits
    Bonjour,

    J'essaye de lancer une macro en ADO pour insérer des données dans une table SQL server depuis excel , pour cela j'utilise un ancienne macro développée sur 32 bits , pourriez vous m'aider à la faire fonctionner en 64 bits

    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
    Public Function CONNEXION_SQL_SERVER(ByRef CON_SQL_SERVER As ADODB.Connection, ByRef STR_ADRESSE_SERVEUR As String, ByRef STR_IDENTIFIANT As String, ByRef STR_MOT_DE_PASSE)
        CON_SQL_SERVER.Open "Driver={SQL Server};Server=" & STR_ADRESSE_SERVEUR & ";Uid=" & STR_IDENTIFIANT & ";Pwd=" & STR_MOT_DE_PASSE & ";"
    End Function
     
    Global Const CST_STR_Ads_SQL_Server As String = "SCHQNCftt\WSQSQLFINANCE,60300"
    Global Const CST_STR_Identifiant_SQL_Server As String = "rtft"
    Global Const CST_STR_MDP_SQL_Server As String = "rfi"
     
    Function INSERT_CATAG_CASES(ByRef CON_SQLServer As ADODB.Connection, ByRef RST_SQLServer As ADODB.Recordset)
     
     
    Dim annee As Integer
    Dim montant As Integer
    Dim mois As Integer
     
    For i = 9 To 1000
     
            MODIF = Range("r" & i).Value
     
    If Cells(o, i) <> "Yes" Then
     
    If Cells(r, i) = 1 Then
     
            RST_SQLServer.Open " INSERT INTO [PROFITABILITY].[dbo].[CATAG_CASES] Values('" & Range("c" & i) & "','""','" & Range("c" & i) & "','" & Range("H" & i) & "','" & Range("I" & i) & "','" & Range("J" & i) & "','" & Range("K" & i) & "','" & Range("L" & i) & "','" & Range("m" & i) & "','" & Range("n" & i) & "');"
     
         End If
     
    Next i
     
    End Function
     
    Sub INSERT_CFGSGSGSG()
        Dim CON_SQLServer As ADODB.Connection
        Dim RST_SQLServer As ADODB.Recordset
     
        Set CON_SQLServer = CreateObject("ADODB.connection") ' Instancie (crée l'objet de connexion)
        Set RST_SQLServer = CreateObject("ADODB.recordset") ' Instancie (crée l'objet de recordset)
     
        ' Connexion à SQL Server
        Call INSERT_CATAG_CASES(CON_SQLServer, CST_STR_Ads_SQL_Server, CST_STR_Identifiant_SQL_Server, CST_STR_MDP_SQL_Server)
     
        RST_SQLServer.ActiveConnection = CON_SQLServer ' Définit la connexion par défaut pour la recordset
     
        ' ---------------------
        ' MAJ des données
        Call INSERT_TRANSFERT_PRICE(CON_SQLServer, RST_SQLServer)
     
     
        ' ---------------------
     
        ' Déconnexion à SQL Server
        Call DECONNEXION_SQL_SERVER(CON_SQLServer)
     
        MsgBox "Mises à jour des données terminées", vbOKOnly, "Succès"
     
        Set CON_SQLServer = Nothing
        Set RST_SQLServer = Nothing
    End Sub
    Au lancement de Sub INSERT_CFGSGSGSGj'ai un message d'erreur incompatibilité de type

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Pourrais-tu donner le code qui appelle la fonction? Car de tes explications, il appert que tu passes probablement un argument du mauvais type...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2021
    Messages : 5
    Par défaut
    Bonjour,

    Merci de ta réponse, je ne suis pas sure de bien comprendre , pour moi le code qui appelle la fonction est le suivant :

    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
     
    Sub INSERT_CFGSGSGSG()
        Dim CON_SQLServer As ADODB.Connection
        Dim RST_SQLServer As ADODB.Recordset
     
        Set CON_SQLServer = CreateObject("ADODB.connection") ' Instancie (crée l'objet de connexion)
        Set RST_SQLServer = CreateObject("ADODB.recordset") ' Instancie (crée l'objet de recordset)
     
        ' Connexion à SQL Server
        Call INSERT_CATAG_CASES(CON_SQLServer, CST_STR_Ads_SQL_Server, CST_STR_Identifiant_SQL_Server, CST_STR_MDP_SQL_Server)
     
        RST_SQLServer.ActiveConnection = CON_SQLServer ' Définit la connexion par défaut pour la recordset
     
        ' ---------------------
        ' MAJ des données
        Call INSERT_TRANSFERT_PRICE(CON_SQLServer, RST_SQLServer)
     
     
        ' ---------------------
     
        ' Déconnexion à SQL Server
        Call DECONNEXION_SQL_SERVER(CON_SQLServer)
     
        MsgBox "Mises à jour des données terminées", vbOKOnly, "Succès"
     
        Set CON_SQLServer = Nothing
        Set RST_SQLServer = Nothing
    End Sub
    Arnaud

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Désolé. Vu le nom un peu tordu de la proc, je n'avais pas capté...

    Tu as cela sur quelle ligne? As-tu référencé une librairie ADODB? Laquelle: 2.7, 2.8?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2021
    Messages : 5
    Par défaut
    J'ai installé la ADODB 2.8, l'instruction bloque sur CST_STR_Ads_SQL_Server

    Arnaud

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Function INSERT_CATAG_CASES(ByRef CON_SQLServer As ADODB.Connection, ByRef RST_SQLServer As ADODB.Recordset) requiert deux arguments, le premier étant une connexion ADODB et le second un Recordset ADODB.

    Dans le code que tu as donné au message 3, tu utilises cette fonction avec 4 arguments et le second, CST_STR_Ads_SQL_Server, est défini comme étant une chaine de caractères.

    Perso, je pense qu'il y a plus simple que tous ces trucs pour se connecter à du sql, mais soit.

    Question qui ne se veut pas du tout impertinente: Je suppose que ce n'est pas toi qui a créé ce code. Comprends-tu ce que tu utilises? Que connais-tu des interactions entre Excel et SQL?

    Que cherches-tu à réaliser, en français, sans jargon informatique et sans code?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2021
    Messages : 5
    Par défaut
    Ce n'est pas moi qui ai crée ce code ( je n'ai pas les connaissances pour ) je l'ai juste utilisé sans trop de soucis sur une version antérieure de office .

    Je cherche à insérer dans une table SQL server des données provenant d'une feuille excel .

    Arnaud

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2021
    Messages : 5
    Par défaut
    Oui je connais les bases en SQL

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu pourrais t'inspirer de mes 4 billets de blog sur les échanges Excel-Access. C'est de l'ADODB donc ça passe pour MS-SQL aussi.

    Ce sont des fonctions génériques qui permettent des accès dans les deux sens.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/09/2006, 16h22
  2. connection SQLSERVER 2000
    Par korchimustapha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/05/2006, 10h31
  3. [ADO.Net][SQLServer]Comment former valeur SmallDateTime?
    Par brousaille dans le forum Accès aux données
    Réponses: 15
    Dernier message: 25/03/2006, 18h42
  4. [JAR]connection sqlserver Pbm driver dans
    Par lotus81 dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 29/06/2004, 16h52
  5. [MFC] ADO connection
    Par philippe V dans le forum MFC
    Réponses: 3
    Dernier message: 10/06/2002, 07h36

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