Connexion bases de données

Soyez le premier à donner votre avis sur cette source.

Vue 27 264 fois - Téléchargée 2 227 fois

Description

Ceci est juste un programme qui me permet de tester les différentes manières de me connecter écrire et lire dans une BDD ACCESS ou SQL serveur, j'ai arrangé le code de manière à pouvoir modifier facilement certains paramètres, hélas je n'ai toujours pas réussi à me connecter à une bdd SQL serveur express. PCPT va vite assigner ce programme ( a défaut de m'assassiner moi) mais je trouvais bien mieux de passer par la publie de ce prog que par les question sur le forum car il peut toujours être très utile aux personnes qui ont le même souci que moi une fois réglé.

En fait Maintenant on peut se connecter et modifier une bdd liée à une bdd sql serveur grace à l'option dbseeChanges mais pour ce qui est des modification directes ça ne va toujours pas!
voir rectification avec:
cnString = "Driver={SQL Native Client};Server=.\SQLExpress;AttachDbFilename=" & bdd & "; Database=" & "" & ";Trusted_Connection=Yes;"
on peut directement se connecter à la table attachée sqlserver2005 (je n'ai pas encore exploré toutes les possibilités)

Source / Exemple :


Option Compare Database

Public bdd

Public cn As New ADODB.Connection
Public cnString As String
Public table, chp1, chp2
Public dbs
Public rst

'***********************************************************************************************************
'***********************************LES SOUS FONCTIONS: ELLES CONTIENNENT LE PRINCIPAL DU CODE**************
'C EST NAMEBDD ET OPENCN QU IL VA FALLOIR CHANGER SI LE CODE EST RESPONSABLE DE LA NON CONNECTION AU BDD SQL SERVEUR
'***********************************************************************************************************
Public Sub nameBDD()
bdd = choisirAutreBase.filename
table = nomTable
chp1 = champ1
chp2 = champ2
'chp1 = "NomEF"
'chp2 = "NomEM"
'table = "configuration_active"
End Sub
Public Sub openCN()
Call nameBDD
'Dim cnString As ADODB.Connection
'Set cnString = New ADODB.Connection
If InStr(Len(bdd) - 5, bdd, ".mdb") <> 0 Then
cnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & bdd
Else
'TOUS CES TEST NE SONT PAS OK
''cnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.FullName & ";"
''cn.ConnectionString = "Provider=SQLOLEDB;;Data Source=DSNsqlServeur;INITIAL CATALOG=" & bdd & ";integrated seurity=sspi;"
''cnString.ConnectionString = "Provider=SQLOLEDB;;Data Source=DSNsqlServeur;INITIAL CATALOG=C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data\2008 serveur umts 1.mdf ;Connect Timeout=30;User Instance=True;" 'integrated seurity=sspi;"
''cnString = "Provider=SQLOLEDB;DATA SOURCE=SQL serveur (SQLEXPRESS);INITIAL CATALOG=" & bdd & ";INTEGRATED SECURITY=SSPI;"
''cnString = "Provider=SQLOLEDB;DATA SOURCE=%lenomdemonordi%\c$\programfiles\Microsoft SQL Server_MSQL.1\Binn\sqlservr.exe -s SQLEXPRESS;INITIAL CATALOG=" & bdd & ";INTEGRATED SECURITY=BSTR;"
''cnString = "Provider=SQLOLEDB;DATA SOURCE=" & CurrentProject.FullName & ";INITIAL CATALOG=" & bdd & ";INTEGRATED SECURITY=BSTR;"
'cnString = "Provider=SQLOLEDB;DATA SOURCE=.\SQLExpress;INITIAL CATALOG=" & bdd & ";INTEGRATED SECURITY=BSTR;USER INSTANCE = true"

'CE TEST EST REUSSI IL FAUT ALLER CHERCHER LA TABLE ATTACHEE QUI SE TROUVE DANS PROGRAM FILE MICROSOFT MMSQL MMSQL1 DATA
cnString = "Driver={SQL Native Client};Server=.\SQLExpress;AttachDbFilename=" & bdd & "; Database=" & "" & ";Trusted_Connection=Yes;"
End If

'cn.Open
cn.Open cnString

End Sub
'***********************************************************************************************************
'*********************************SI DESSUS LES FONCTION A MANIPULER CI DESSOUS LES FONCTIONS ET************
'*********************************PROCEDURE PERMETTEANT LA CONNECTION LECTURE ET ECRITURE DANS UNE BDD******
Public Sub openrstADO()
Set rst = New ADODB.Recordset
End Sub
Public Sub openrstDAO()
'Set rst = New DAO.Recordset
End Sub

Public Sub configureDbs()
Call nameBDD
Set dbs = DBEngine.Workspaces(0).OpenDatabase(bdd)
End Sub
Public Sub ecriture()
rst.AddNew
rst(chp1) = champ1Value
rst(chp2) = champ2Value
rst.Update
End Sub
Public Sub ecritureADO()
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.CursorType = adOpenDynamic
rst.LockType = adLockOptimistic
rst.Open table, cn ', adOpenKeyset, adLockOptimistic
rst.Fields(chp1) = champ1Value
rst.Fields(chp2) = champ2Value
rst.Update
End Sub

Public Sub lecture()
rst.MoveFirst
While Not rst.EOF
recupData = recupData & "just for testing: " & rst(chp1) & vbCrLf
recupData = recupData & "just for testing: " & rst(chp2) & vbCrLf
rst.MoveNext
Wend
End Sub
Public Sub closeDAO()
dbs.Close
Set dbs = Nothing
Set rst = Nothing
End Sub
Public Sub closeADO()
cn.Close
Set rst = Nothing
Set cn = Nothing
End Sub
'***********************************************************************************************************
'***********************************************************************************************************
'***********************************************************************************************************

Private Sub clean_Click()
recupData = ""
End Sub
Public Sub ecritADO()
Call openCN
Call ecritureADO
Set Forms("Formulaire2").Recordset = rst
Call closeADO
End Sub
Public Sub litADO()
Call openCN
Call openrstADO
rst.Open "SELECT * FROM " & table & " ", cn ', adOpenKeyset, adLockOptimistic
Call lecture
Call closeADO
End Sub
Public Sub ecritDAO()
Call configureDbs
Call openrstDAO
Set rst = dbs.OpenRecordset(table)
Call ecriture
Call closeDAO
End Sub
Public Sub litDAO()
Call configureDbs
Call openrstDAO
Set rst = dbs.OpenRecordset("SELECT * FROM " & table, dbOpenDynaset, dbSeeChanges)
Call lecture
Call closeDAO
End Sub

'***********************************************************************************************************
'**************************procedures de gestion des evenements de clic sur les bouttons********************
'***************************on appelle les sous procedures**************************************************
Private Sub Commande10_Click() 'ado ecrit
Call ecritADO
End Sub
Private Sub Commande9_Click() 'ado lit
Call litADO
End Sub
Private Sub Commande4_Click() 'dao ecrit
Call ecritDAO
End Sub
Private Sub Commande5_Click() 'dao lit
Call litDAO
End Sub

Private Sub choixFichier_Click()
On Error GoTo ErrorHandlerChoixFichier
Dim oDialog As Object
Dim NomFichier As String
Set oDialog = choisirAutreBase.Object
With oDialog
.DialogTitle = "fichier à analyser"
.Filter = "Fichiers (*.mdb)|*.mdb|Fichiers (*.adp)|*.adp|Fichiers (*.mdf)|*.mdf|tous le fichiers (.*)|*.*"
.FilterIndex = 1
.ShowOpen
If Len(.filename) > 0 Then
nomBaseDonnee.Caption = .filename
End If
End With
ErrorHandlerChoixFichier:
Err.Clear
End Sub

'***********************************************************************************************************
'**************************chargement du formulaire*********************************************************
'***********************************************************************************************************

Private Sub Form_Load()
nomBaseDonnee.Caption = "choisir une bdd"
nomBaseDonnee.Visible = True
champ1 = "nom du champ1"
champ2 = "nom du champ2"
nomTable = "nom de la table"
champ1Value = "valeur a inserer"
champ2Value = "valeur a inserer"
End Sub

Conclusion :


Les histoires de serveurs de connections ne sont pas toujours une histoire de code mais ce n'est très simple qu'une fois qu'on à la solution...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_fatoumaa Messages postés 4 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 22 mai 2013
5 mai 2013 à 21:28
slm berabi code connexion vb.net2010 + sql server
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
26 mars 2008 à 16:42
merci de ta réponse Renfield,

hélas pour moi je crois que c'est plutôt un problème d'instalation ou de droits (ou de dll?). J'ai bien modifié la surface de d'exposition comme c'est la version express donné les droits admin à mon utilisateur mais il y a peu être encore un confli entre les deux pilotes sql server et sql native client j'ai peut être un peu trop trifouiilé dans les pilotes et sql management... et j'ai empiré les choses... je vais essayer sur un autre ordi pour voir.

@+
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 75
26 mars 2008 à 15:24
va donc voir sur www.ConnectionStrings.com

tu y trouveras a oup sur ton bonheur
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
26 mars 2008 à 15:21
Bonjour,

Ça c'est pour la connexion à une bdd Access mais pour se connecter à une bdd SQL serveur je crois qu'un code correct ne suffit pas:
cnString = "Provider=MSDASQL;Driver=SQLSRV32.DLL;Server=monordi\SQLEXPRESS;Database=" & bdd & ";integrated seurity=sspi;Trusted_Connection=Yes;UserID= moi; pwd = mo2pass"

Il faut peut être recréé un utilisateur spécialement pour SQL server ou alors ... J'ai pourtant configuré la surface d'exposition, les utilisateurs etc. rien y fait ça bloque au niveau de la chaîne de connexion (toutes les chaînes de connexion)...

Voici mes messages d'erreurs récurrents:
Pour
cnString = "Provider=SQLOLEDB;DATA SOURCE=.\SQLExpress;INITIAL CATALOG=" & bdd & ";INTEGRATED SECURITY=sspi;USER INSTANCE = true;"
Microsoft OLE DB Service Components
Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible. Aucun travail n'a été effectué.
1000440
-2147217887

pour
cnString = "Driver={SQL Native Client};Provider=MSDASQL;Server=PCBUR0610-1\SQLEXPRESS;Database=" & bdd & ";integrated seurity=sspi;Trusted_Connection=Yes;"
Microsoft OLE DB Provider for ODBC Drivers
[Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié
1000440
-2147467259

pour
cnString = "Driver={SQL Native Client};Provider=SQLOLEDB.1;Server=PCBUR0610-1\SQLEXPRESS;Database=" & bdd & ";integrated seurity=sspi;Trusted_Connection=Yes;"""
Microsoft OLE DB Provider for SQL Server
Attribut de chaîne de connexion non valide
1000440
-2147217843

cnString = "Driver={SQL Native Client};Provider=SQLNCLI;Server=monOrdi\SQLEXPRESS;Database=" & bdd & ";integrated seurity=sspi;Trusted_Connection=Yes;"""
Microsoft SQL Native Client
Attribut de chaîne de connexion non valide
1000440
-2147217843

Est ce que vous avez une idée?

salut.

PS: marrant le petit chat snipper...
ghuysmans99 Messages postés 2495 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 1
26 mars 2008 à 14:10
@konguess -> Dim CommonDialog1 As New MSComDlg.CommonDialog

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.