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 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
|
Private Sub TransfertDB_Click()
'***********************************************************************
' Code pour un bouton qui m'a servi à transférer les données de l'ancienne base DBEntomo10
' dans celle-ci (la nouvelle DBEntomo en betatest)
'***********************************************************************
Dim rst As DAO.Recordset ' recordset for data
Dim rst2 As DAO.Recordset 'recordset sur la table temporaire admin
Dim fld As DAO.Field 'pour les champs du rst2
Dim oldID As Long
Dim newID As Long
Dim db As DAO.Database
Set db = CurrentDb
Call TransfertDataCollect
' open recordset basé sur la table NbrEmergence1
Set rst = db.OpenRecordset("SELECT * from NbrEmergence1")
' open recordset basé sur la table NbrEmergence
Set rst2 = db.OpenRecordset("SELECT * from NbrEmergence")
'on ajoute à la table NbreEmergence les données de NbrEmergence1
If rst.RecordCount <> 0 Then
rst.MoveFirst
Do While rst.EOF = False
rst2.AddNew
For Each fld In rst.Fields
If fld.Name = "ID" Then
oldID = rst.Fields(fld.Name).Value
Else
If fld.Name = "DateHeureEncodage" Then
'Ce champs s'appelle maintenant DateModif
Else
rst2.Fields(fld.Name).Value = fld.Value
End If
End If
Next fld
newID = rst2.Fields("ID").Value
rst2.Update
Call TransfertDataIdentification(oldID, newID)
rst.MoveNext
'MsgBox "AncienID = " & oldID & " - NouveauID = " & newID
Loop
Else
MsgBox "La table NbrEmergence1 n'a pas d'enregistrements"
End If
DoCmd.Close acForm, "TransfertDB"
rst.Close
Set rst = Nothing
rst2.Close
Set rst2 = Nothing
db.Close
Set db = Nothing
End Sub
Private Function TransfertDataIdentification(ByVal oldID As Long, ByVal newID As Long)
'***********************************************************************
' Code pour un bouton qui m'a servi à transférer les données de l'ancienne base DBEntomo10
' dans celle-ci (la nouvelle DBEntomo en betatest)
'***********************************************************************
Dim rst As DAO.Recordset ' recordset for data
Dim rstFiltre As DAO.Recordset ' recordset for data Filtrée
Dim rst2 As DAO.Recordset 'recordset sur la seconde table
Dim fld As DAO.Field 'pour les champs du rst2
Dim nomtaxon As String
Dim nomauteur As String
Dim db As DAO.Database
Set db = CurrentDb
' open recordset basé sur la table NbrEmergence1
Set rst = db.OpenRecordset("SELECT * from DataIdentification1", dbOpenDynaset)
' open recordset basé sur la table NbrEmergence
Set rst2 = db.OpenRecordset("SELECT * from DataIdentification", dbOpenDynaset)
'Filtrage de la table DataIdentification pour ressortir juste les enregistrments concernant l'oldID
rst.Filter = "(IDBteEmergence) = " & oldID
Set rstFiltre = rst.OpenRecordset
nomtaxon = ""
nomauteur = ""
'on ajoute à la table DataIdentification les données de DataIdentification1
If rstFiltre.RecordCount <> 0 Then
rstFiltre.MoveFirst
Do While rstFiltre.EOF = False
rst2.AddNew
For Each fld In rstFiltre.Fields
If fld.Name = "IDBteEmergence" Then
rst2.Fields(fld.Name).Value = newID
Else
If fld.Name = "IdEspeceParrain" Then 'on scinde ici le champs en 2 champs
If Not IsNull(fld.Value) And fld.Value <> "sp. Indet." Then
nomtaxon = Trim(Left(fld.Value, InStr(1, fld.Value, " ")))
nomauteur = Trim(Right(fld.Value, Len(fld.Value) - InStr(1, fld.Value, " ")))
Else
If fld.Value = "sp. Indet." Then
nomtaxon = "sp. Indet."
nomauteur = ""
Else
nomtaxon = ""
nomauteur = ""
End If
End If
rst2.Fields("IdEspeceParrain").Value = nomtaxon
' rst2.Fields("Auteur") = nomauteur
Else
rst2.Fields(fld.Name).Value = fld.Value
End If
End If
Next fld
rst2.Update
If rst2.RecordCount > 0 Then
rst2.MoveLast
rst2.Edit
rst2.Fields("Auteur") = nomauteur
rst2.Update
End If
rstFiltre.MoveNext
Loop
Else
MsgBox "La table DataIdentification1 n'a pas d'enregistrements"
End If
rst.Close
Set rst = Nothing
rstFiltre.Close
Set rstFiltre = Nothing
rst2.Close
Set rst2 = Nothing
db.Close
Set db = Nothing
End Function
Private Function TransfertDataCollect()
'***********************************************************************
' Code pour un bouton qui m'a servi à transférer les données de l'ancienne base DBEntomo10
' dans celle-ci (la nouvelle DBEntomo en betatest)
'***********************************************************************
Dim rst As DAO.Recordset ' recordset for data
Dim rst2 As DAO.Recordset 'recordset sur la table temporaire admin
Dim fld As DAO.Field 'pour les champs du rst2
Dim db As DAO.Database
Set db = CurrentDb
' open recordset basé sur la table NbrEmergence1
Set rst = db.OpenRecordset("SELECT * from DataCollect1")
' open recordset basé sur la table NbrEmergence
Set rst2 = db.OpenRecordset("SELECT * from DataCollect")
'on ajoute à la table DataCollect les données de DataCollect1
If rst.RecordCount <> 0 Then
rst.MoveFirst
Do While rst.EOF = False
rst2.AddNew
For Each fld In rst.Fields
If fld.Name = "ID" Then
Else
If fld.Name = "NumDeCD" Then
rst2.Fields("NumCD").Value = fld.Value
Else
If fld.Name = "DatePrelevement" Or fld.Name = "Recolteurs" Or fld.Name = "Commentaires/notes" Or fld.Name = "HeurePrélèvement" Or fld.Name = "NumSondeTerrain" Then
'ces champs sont dans la table InfosPrelevements - Faire une fonction pour les y transférer si besoin dans le futur
Else
rst2.Fields(fld.Name).Value = fld.Value
End If
End If
End If
Next fld
rst2.Update
rst.MoveNext
Loop
Else
MsgBox "La table DataCollect1 n'a pas d'enregistrements"
End If
rst.Close
Set rst = Nothing
rst2.Close
Set rst2 = Nothing
db.Close
Set db = Nothing
End Function |
Partager