Salut, j'ai fais une petite class qui fais sa, donc pour access, tu as juste
a fair ConnectACCESS(chemin) etc bon, enregistrement te retourne nu
enregistrement, et affiche permet d'afficher une requette sql dans n'importe
quelle type d'element.
quelleque explication, toute les fonction zz sont des enciennefonction que
j'ai renomer au fur et a mesure je les garde juste par sousi de
compatibiliter,
tu peut les virer, sa me permet quand je rouvre un ancien projet de
remplacer rapidement les ancienne fonction, toute le code es pas fini, je
n'avais ps ma derniere class sous la main :-). mas a partire de la tu fait
nue connecionSQL2000 et ainsi de suite, c ce que j'ai fais, si tu veux la
derniere class dit le moi je te l'enverai
l'aventage, si un jour tu migre en .net, tu remplace juste dans la class le
code et tu garde tes habitude (c peut etre pas ce qu'il y a de mieux ...
mais bon) et tu peut rapidement migrer tes projet, c ce que je fais,
j'encapsule tout dans des class, maintenans c peut etre pas la meilleur
solution, mais c celle qui me convient le mieux.
' a mettre dans une class
'---------------------------------------------------------------------------
------------------
Public BaseDonne As ADODB.Connection
Private ColErreur As Collection
Private hideDateInitialisation As String
Public Function sqlUpdate(ByVal pTable As String, ByVal pChampsMAJ As
String, ByVal pCondition As String)
Dim lSql As String
If pCondition = "" Then
lSql = "update " & pTable & " set " & pChampsMAJ
Else
lSql = "update " & pTable & " set " & pChampsMAJ & " where (" &
pCondition & ")"
End If
Me.Execute lSql
End Function
Public Function strUpdate(ByVal pNumeric As Boolean, ParamArray
pTableauValeur())
Dim i As Integer
Dim lSqlRetour As String
For i = LBound(pTableauValeur) To UBound(pTableauValeur) - 1 Step 2
Private Function AjouteErreur(ByVal pSql As String)
Dim lErreur(1 To 5) As String
Static lID As Double
lID = lID + 1
lErreur(1) = lID 'Id unique pour la ligne dans le lancement du logiciel
lErreur(2) = hideDateInitialisation 'date du lancement du logiciel
lErreur(3) = zzDate 'date de l'erreur
lErreur(4) = "SQL" 'property
lErreur(5) = pSql 'valeur property
ColErreur.Add lErreur
End Function
Public Function RPoint(ByVal pChaine As String, Optional ByVal pZero As
Boolean) As String
'Remplace les virgule pardes point pour les requette SQL et retourne un
string
Dim lRetour As String
lRetour = Replace(pChaine, ",", ".")
If pZero = True Then
If lRetour = "" Then lRetour = "0"
End If
RPoint = lRetour
End Function
Public Function RCote(ByVal pChaine As String) As String
'Double les cotes pour la requette SQL
RCote = Replace(pChaine, "'", "''")
End Function
Public Function RPointDbl(ByVal pChaine As String) As Double
'Retourne un double avec une chaine de caractere,
'et convertie automatiquement la virgule en point
RPointDbl = Val(RPoint(pChaine))
End Function
Public Function Execute(ByVal pCommandTexte As String)
On Error GoTo erreur:
Me.BaseDonne.Execute pCommandTexte
Exit Function
erreur:
If pBoucle = False Then 'permet de verifier si la foncitone exectue est
executer dans une boulce d'erreur
End If
End Function
Public Function sqlSupprimerLigne(ByVal pNomTable As String, Optional
pCritere As String = "")
If pCritere = "" Then
Me.Execute "DELETE FROM " & pNomTable
Else
Me.Execute "DELETE FROM " & pNomTable & " WHERE (" & pCritere & ")"
End If
End Function
Function ChercheMax(ByVal table As String, ByVal champ As String) As String
Dim EnregistrementLocal As ADODB.Recordset
Dim SQL As String
SQL = "Select max(" & champ & ") from " & table
' créer un jeu d'enregistrements à partir de la collection fournie
Set EnregistrementLocal = New Recordset
EnregistrementLocal.CursorLocation = adUseClient
EnregistrementLocal.Open SQL, BaseDonne, adOpenForwardOnly,
adLockReadOnly
If EnregistrementLocal.RecordCount = 0 Then
ChercheMax = 0
Else
If IsNull(EnregistrementLocal(0).Value) = True Then ChercheMax = 0
Else ChercheMax = EnregistrementLocal(0).Value
End If
Set EnregistrementLocal = Nothing
End Function
Function ConnectDSN(ByVal pConnect As String)
Dim sConnect As String
' définir les chaînes
sConnect = pConnect
' ouvrir la connexion
Set BaseDonne = New Connection
BaseDonne.Open sConnect
End Function
Function ConnectACCESS(ByVal CheminBaseDonne As String)
Set pEnregistrement.DataSource = EnregistrementLocal
Set EnregistrementLocal = Nothing
End Function
Public Function Affiche(ByVal pSql As String, Optional ByRef pListe As
ListBox, Optional ByRef pCombo As ComboBox, Optional pListeVieew As
ListView, Optional pAfficherNumero As Boolean = False, Optional ByVal
pNomColonne As String, Optional ByVal pLargeurColonne As String)
Dim lEnr As ADODB.Recordset
Dim lTexte As String
Dim i As Long
Dim lIndex As Long
Dim lKey As String
Dim lTexteKey As String
Dim lLargeurColonneT As Variant
Dim lLargeurColonne As Double
Dim lNomColonneT As Variant
Dim lNomColonne As String
'Cette fonction affiche dans une liste, ue combo, une listeview, le contenu
de la requette SQL
'pour la combo et la liste, la premiere colonne de la requettesql sera prise
en compte
'pour la liste view elle bouclera sur les colonnes,
'il es possible de specifier des noms de colonne dans pNomColonne, le
separateur est '|'
Me.Enregistrement lEnr, pSql
If Not pListeVieew Is Nothing Then
pListeVieew.ListItems.Clear
pListeVieew.ColumnHeaders.Clear
For i = 0 To lEnr.Fields.Count - 1
If pNomColonne = "" Then
lNomColonne = lEnr.Fields(i).Name
Else
If i < LBound(lNomColonneT) Or i > UBound(lNomColonneT) Then
lNomColonne = lEnr.Fields(i).Name
Else
lNomColonne = lNomColonneT(i)
End If
End If
If pLargeurColonne = "" Then
lLargeurColonne = 1001
Else
If i < LBound(lLargeurColonneT) Or i > UBound(lLargeurColonneT)
Then
lLargeurColonne = 1002
Else
lLargeurColonne = Val(lLargeurColonneT(i))
End If
End If
pListeVieew.ColumnHeaders.Add , "col:" & i, lNomColonne,
lLargeurColonne
Next
End If
Do While Not lEnr.EOF
lIndex = lIndex + 1
If lEnr.Fields.Count > 1 Then
lTexteKey = lEnr(1).Value
End If
If pAfficherNumero = True Then
lTexte = lIndex & " : " & lEnr(0).Value
Else
lTexte = lEnr(0).Value
End If
If Not pListe Is Nothing Then
pListe.AddItem lTexte
End If
If Not pCombo Is Nothing Then
pCombo.AddItem lTexte
End If
--
a++
Sebastien
s.dieudonne@inosys.net ou inosys@hotmail.com
---------------------------------------------------------------------------
Un addin bien sympa qui facilite la prog objet (Génération automatique de
code) et la gestion d'erreur sous VB6.0 :-)
http://www.inosys.net/genclass/vb6/addingenclass.zip
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sebastien
hue excuser moi, j'ai pas vus que j'ai pas poster dans le fil de la conversation :-)
-- a++ Sebastien ou
c'etait suite a cette demande que j'ai poster le code
'----------------------------------- oui justement je voudrais une classe qui permette d'abstraire ces considérations pour fournir un mode d'accès convival et standardisé pour tout type de base. Je suis pas sur d'etre clair ?
Merci et bonne nuit ( fait dodo l'enfant do)
"Zoury" a écrit dans le message de news:
: Tant que je t'ai sur les doigs (lol), j'oserais savoir si tu connais une : classe qui gère l'accès aux bases de données ?
Pas spécialement... J'en ai fait pour des logiciels, mais elle ne peut
servir
qu'à ces logiciels spécifiques... Quel genre de fonctionnalité tu
cherches? Il
me semble qu'ADO (et même DAO) conviennent parfaitement au besoin, non?
hue excuser moi, j'ai pas vus que j'ai pas poster dans le fil de la
conversation :-)
--
a++
Sebastien
s.dieudonne@inosys.net ou inosys@hotmail.com
c'etait suite a cette demande que j'ai poster le code
'-----------------------------------
oui justement je voudrais une classe qui permette d'abstraire ces
considérations pour fournir un mode d'accès convival et standardisé pour
tout type de base. Je suis pas sur d'etre clair ?
Merci et bonne nuit ( fait dodo l'enfant do)
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:eOoAwPLRDHA.1976@TK2MSFTNGP11.phx.gbl...
: Tant que je t'ai sur les doigs (lol), j'oserais savoir si tu connais une
: classe qui gère l'accès aux bases de données ?
Pas spécialement... J'en ai fait pour des logiciels, mais elle ne peut
servir
qu'à ces logiciels spécifiques... Quel genre de fonctionnalité tu
cherches? Il
me semble qu'ADO (et même DAO) conviennent parfaitement au besoin, non?
hue excuser moi, j'ai pas vus que j'ai pas poster dans le fil de la conversation :-)
-- a++ Sebastien ou
c'etait suite a cette demande que j'ai poster le code
'----------------------------------- oui justement je voudrais une classe qui permette d'abstraire ces considérations pour fournir un mode d'accès convival et standardisé pour tout type de base. Je suis pas sur d'etre clair ?
Merci et bonne nuit ( fait dodo l'enfant do)
"Zoury" a écrit dans le message de news:
: Tant que je t'ai sur les doigs (lol), j'oserais savoir si tu connais une : classe qui gère l'accès aux bases de données ?
Pas spécialement... J'en ai fait pour des logiciels, mais elle ne peut
servir
qu'à ces logiciels spécifiques... Quel genre de fonctionnalité tu
cherches? Il
me semble qu'ADO (et même DAO) conviennent parfaitement au besoin, non?