cs_cera
Messages postés16Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention25 août 2008
-
16 nov. 2006 à 10:43
cs_cera
Messages postés16Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention25 août 2008
-
17 nov. 2006 à 12:28
bonjour,
et mes excuses pour les fautes car j'ai un clavier anglais et il n'y a pas d'accents.
J'ai un petit soucis avec access et VB6. En effet, j'arrive a creer une base avec des tables dedans et a les mettre a jour par selection. Seulement dans certains cas je dois supprimer une table et la recreer ensuite. Voici un exemple de ce aue je fais pour mettre a jour, et si quelqu'un peut me donner un tuyau pour y arriver...
par avance merci
Private Sub Form_Load()
Dim BaseSympo As Database
Dim FirstDate As Date ' Declare variables.
Dim IntervalType As String
Dim Number As Integer
Dim Msg
FirstDate = Date
IntervalType = "d" ' "m" specifies months as interval.
datework = DateAdd(IntervalType, -1, FirstDate)
'MsgBox datework
Set BaseSympo = OpenDatabase("A", dbDriverNoPrompt, True, _
"ODBC;DATABASE=B;UID=log;PWD=pwd;DSN=DSN")
Dim BaseAccess As Database
If Dir("P:\DB-SCCS-ACCESS\BaseTest3.mdb") = "" Then
Set BaseAccess = CreateDatabase("P:\DB-SCCS-ACCESS\basetest3.mdb", dbLangGeneral)
Else
Set BaseAccess = OpenDatabase("P:\DB-SCCS-ACCESS\basetest3.mdb")
End If
' création de la table dAgentPerformenceStat.dqy
Dim MaTable As TableDef
Dim NomTable As String
Dim TableName As String
Dim OrigRecordSet As Recordset
Dim DestRecordSet As Recordset
TableName = "tableorigine"
For i = 0 To BaseSympo.TableDefs.Count - 1
If BaseSympo.TableDefs(i).Attributes = 0 Then
If BoolSympo Then
' cas de sympo
NomTable = Right(BaseSympo.TableDefs(i).Name, Len(BaseSympo.TableDefs(i).Name) - 4)
Else
' cas d'une base locale
NomTable = BaseSympo.TableDefs(i).Name
End If
If NomTable = TableName Then
NomTable = Right(NomTable, Len(NomTable) - 4)
TableName = Right(TableName, Len(TableName) - 4)
Set MaTable = BaseAccess.CreateTableDef(NomTable)
j = 0
For j = 0 To BaseSympo.TableDefs(i).Fields.Count - 1
MaTable.Fields.Append MaTable.CreateField(BaseSympo.TableDefs(i).Fields(j).Name, BaseSympo.TableDefs(i).Fields(j).Type, BaseSympo.TableDefs(i).Fields(j).Size)
Next j
On Error Resume Next
BaseAccess.TableDefs.Append MaTable
End If
End If
Next i
' remplissage de la table
Set OrigRecordSet = BaseSympo.OpenRecordset("SELECT * FROM " & TableName)
Set DestRecordSet = BaseAccess.OpenRecordset("SELECT * FROM " & TableName)
If Not OrigRecordSet.EOF Then
Do While Not OrigRecordSet.EOF
With DestRecordSet
.AddNew
For i = 0 To OrigRecordSet.Fields.Count - 1
If OrigRecordSet.Fields(0).Value = datework Then
.Fields(i).Value = OrigRecordSet.Fields(i).Value
Else
.Delete ' ici je supprime le record qui ne me convient pas
End If
Next i
.Update
.Bookmark = .LastModified
End With
OrigRecordSet.MoveNext
Loop
OrigRecordSet.Close
DestRecordSet.Close
End If
'fermeture bases de données
'BaseSympo.Close
'BaseAccess.Close