Suppression d'une table dans une base access

cs_cera Messages postés 16 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 25 août 2008 - 16 nov. 2006 à 10:43
cs_cera Messages postés 16 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 25 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

2 réponses

lilo44 Messages postés 174 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 15 février 2007 2
16 nov. 2006 à 11:20
Bonjour

Attendez, c'est une suppression de ligne ou de table ???

ps : Vive le SQL hein :D "DROP TABLE nom_de_la_table"
0
cs_cera Messages postés 16 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 25 août 2008
17 nov. 2006 à 12:28
merci,

en fait je n'ai pas pensé au drop, du coup je supprimais toutes les lignes déja existantes. Je vais l'essayer
0
Rejoignez-nous