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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
| Option Explicit On
Option Strict On
Public Class DB
Private m_strBaseAccess As String
Private strConnectionString As String
Private adoBase As New OleDb.OleDbConnection
Public dtsO2S As DataSet
Public adpENTREPRISE As New OleDbDataAdapter
Public adpDIRIGEANTS As New OleDbDataAdapter
Public adpCIBLES As New OleDbDataAdapter
Public adpCLIENTS As New OleDbDataAdapter
Public adpSTATUTS As New OleDbDataAdapter
Public adpPAYS As New OleDbDataAdapter
Public adpMAXS As New OleDbDataAdapter
Public dttENTREPRISE As New DataTable
Public dttDIRIGEANTS As New DataTable
Public dttCIBLES As New DataTable
Public dttCLIENTS As New DataTable
Public dttSTATUTS As New DataTable
Public dttPAYS As New DataTable
Public dttMAXS As New DataTable
Public relEntDir As DataRelation
Public relPayEnt As DataRelation
Public relEntCib As DataRelation
Public relStaCib As DataRelation
Public relCliCib As DataRelation
Public asqlENTREPRISE As OleDbCommandBuilder
Public asqlDIRIGEANTS As OleDbCommandBuilder
Public asqlCIBLES As OleDbCommandBuilder
Public asqlCLIENTS As OleDbCommandBuilder
Public asqlSTATUTS As OleDbCommandBuilder
Public asqlPAYS As OleDbCommandBuilder
Public Sub New(ByVal strBase As String)
m_strBaseAccess = strBase
Call MiseEnCacheDeLaBase()
End Sub
Private Sub MiseEnCacheDeLaBase()
Try
adoBase.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & m_strBaseAccess
adoBase.Open()
Call DefinitionsSQL()
dtsO2S = New DataSet("O2Sdata")
Call ChargerDataset()
Call DefinitionsDatatables()
Call AjouterCles()
Call AjouterRelations()
dttCIBLES.Columns.Add("CLIENT", GetType(String), "Parent(relCliCib).NOM")
adoBase.Close()
Catch ex As Exception
MsgBox("Impossible d'ouvrir la base" & vbCrLf & ex.Message)
adoBase.Close()
End Try
End Sub
Private Sub DefinitionsSQL()
adpENTREPRISE.SelectCommand = New OleDbCommand("SELECT * FROM " & TABLE_ENTREPRISES & " WHERE SUPTECH = '0'", adoBase)
adpDIRIGEANTS.SelectCommand = New OleDbCommand("SELECT * FROM " & TABLE_DIRIGEANTS & " WHERE SUPTECH = '0'", adoBase)
adpCIBLES.SelectCommand = New OleDbCommand("SELECT * FROM " & TABLE_CIBLES & " WHERE SUPTECH = '0'", adoBase)
adpCLIENTS.SelectCommand = New OleDbCommand("SELECT * FROM " & TABLE_CLIENTS, adoBase)
adpSTATUTS.SelectCommand = New OleDbCommand("SELECT * FROM " & TABLE_STATUTS, adoBase)
adpMAXS.SelectCommand = New OleDbCommand("SELECT * FROM " & VUE_MAXS, adoBase)
adpPAYS.SelectCommand = New OleDbCommand("SELECT * FROM " & TABLE_PAYS, adoBase)
End Sub
Private Sub ChargerDataset()
adpENTREPRISE.Fill(dtsO2S, TABLE_ENTREPRISES)
adpDIRIGEANTS.Fill(dtsO2S, TABLE_DIRIGEANTS)
adpCIBLES.Fill(dtsO2S, TABLE_CIBLES)
adpCLIENTS.Fill(dtsO2S, TABLE_CLIENTS)
adpSTATUTS.Fill(dtsO2S, TABLE_STATUTS)
adpPAYS.Fill(dtsO2S, TABLE_PAYS)
adpMAXS.Fill(dtsO2S, VUE_MAXS)
End Sub
Private Sub DefinitionsDatatables()
dttENTREPRISE = dtsO2S.Tables(TABLE_ENTREPRISES)
dttDIRIGEANTS = dtsO2S.Tables(TABLE_DIRIGEANTS)
dttCIBLES = dtsO2S.Tables(TABLE_CIBLES)
dttCLIENTS = dtsO2S.Tables(TABLE_CLIENTS)
dttSTATUTS = dtsO2S.Tables(TABLE_STATUTS)
dttPAYS = dtsO2S.Tables(TABLE_PAYS)
dttMAXS = dtsO2S.Tables(VUE_MAXS)
End Sub
Private Sub AjouterCles()
dttENTREPRISE.Constraints.Add("priEnt", dttENTREPRISE.Columns(colENTREPRISE.Identifiant), True)
dttDIRIGEANTS.Constraints.Add("priDir", dttDIRIGEANTS.Columns(colDIRIGEANTS.DIR_Identifiant), True)
dttCIBLES.Constraints.Add("priCib", dttCIBLES.Columns(colCIBLES.Identifiant), True)
dttCLIENTS.Constraints.Add("priCli", dttCLIENTS.Columns(colCLIENTS.Identifiant), True)
dttSTATUTS.Constraints.Add("priSta", dttSTATUTS.Columns(ColSTATUTS.Statut), True)
dttPAYS.Constraints.Add("priPay", dttPAYS.Columns(colPAYS.PaysCourt), True)
End Sub
Private Sub AjouterRelations()
Try
relEntDir = New DataRelation("relEntDir", dttENTREPRISE.Columns(colENTREPRISE.Identifiant), dttDIRIGEANTS.Columns(colDIRIGEANTS.DIR_IdEntreprise))
relPayEnt = New DataRelation("relPayEnt", dttPAYS.Columns(colPAYS.PaysCourt), dttENTREPRISE.Columns(colENTREPRISE.Pays))
relEntCib = New DataRelation("relEntCib", dttENTREPRISE.Columns(colENTREPRISE.Identifiant), dttCIBLES.Columns(colCIBLES.IdEntreprise))
relStaCib = New DataRelation("relStaCib", dttSTATUTS.Columns(ColSTATUTS.Statut), dttCIBLES.Columns(colCIBLES.Statut))
relCliCib = New DataRelation("relCliCib", dttCLIENTS.Columns(0), dttCIBLES.Columns(colCIBLES.IdClient), True)
dtsO2S.EnforceConstraints = True
dtsO2S.Relations.Add(relEntDir)
dtsO2S.Relations.Add(relPayEnt)
dtsO2S.Relations.Add(relEntCib)
dtsO2S.Relations.Add(relStaCib)
dtsO2S.Relations.Add(relCliCib)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Sub SynchroniserAccess()
Try
adoBase.Open()
Catch
MsgBox("Problème pour ouvrir la base" & vbCrLf & "Mise à jour annulée", MsgBoxStyle.Critical, "Ouverture de la base")
End Try
Try
asqlENTREPRISE = New OleDbCommandBuilder(adpENTREPRISE)
asqlDIRIGEANTS = New OleDbCommandBuilder(adpDIRIGEANTS)
asqlCIBLES = New OleDbCommandBuilder(adpCIBLES)
asqlCLIENTS = New OleDbCommandBuilder(adpCLIENTS)
asqlSTATUTS = New OleDbCommandBuilder(adpSTATUTS)
asqlPAYS = New OleDbCommandBuilder(adpPAYS)
adpSTATUTS.Update(dttSTATUTS)
MsgBox(adpCLIENTS.Update(dttCLIENTS))
adpENTREPRISE.Update(dttENTREPRISE)
adpDIRIGEANTS.Update(dttDIRIGEANTS)
adpCIBLES.Update(dttCIBLES)
Catch ex As Exception
MsgBox("Problème de mise à jour" & vbCrLf & ex.Message)
End Try
adoBase.Close()
End Sub
End Class |
Partager