Pb de ACCESS

cs_Charlie Messages postés 110 Date d'inscription jeudi 9 mai 2002 Statut Membre Dernière intervention 11 mars 2010 - 8 août 2002 à 18:30
cs_Charlie Messages postés 110 Date d'inscription jeudi 9 mai 2002 Statut Membre Dernière intervention 11 mars 2010 - 12 août 2002 à 13:44
allo...

voici comment ma base de données est créé.

Mon pb viens du faire que si mon application est fermé et que la base de donnée est encore ouverte, la BD deviens corrompue!

C'est tannant car ont est pas a l'abris d'une coupure de courant ou d'un ctrl+alt+supp!!!

Option Explicit

Private Cat As New ADOX.Catalog
Private cmdado As New ADODB.command

' Recordset pointant vers 1 enregistrement
Private rsProject As New ADODB.Recordset ' Table Project
Private rsImages As New ADODB.Recordset ' Table Images
Private rsData As New ADODB.Recordset ' Table Data

Private Connection As New ADODB.Connection ' Connection pour le Delete Data

'**************************************************************************'
'*** Function-- CreateDB ***'
'*** Description: Création de la Base de Données ***'
'**************************************************************************'
Public Function CreateDB(link As String)
Dim Tbl As New ADOX.Table

' Création de la Base de Données
Cat.Create "provider=microsoft.jet.oledb.3.51;" & "Data source =" & link & ";"
Connection.ConnectionString = "provider=microsoft.jet.oledb.3.51;" & "Data source =" & link & ";"

' Ajout de la table Project
With Tbl
.Name = "Project"
.Columns.append "Log Nb", adChar, 50
.Columns.append "Sample Nb", adChar, 50
.Columns.append "Name", adChar, 50
.Columns.append "Path", adChar, 255
.Columns.append "Images From", adChar, 255
.Columns.append "Calibration", adDouble

End With

Cat.Tables.append Tbl
Set Tbl = Nothing

' Ajout de la table Images
With Tbl
.Name = "Images"
.Columns.append "CalculDone", adBoolean
.Columns.append "BorderDone", adBoolean
.Columns.append "SplitDone", adBoolean
.Columns.append "ClassDone", adBoolean
.Columns.append "Name", adChar, 50
.Columns.append "Dimension", adChar, 50
End With
Cat.Tables.append Tbl
Set Tbl = Nothing

' Ajout de la table Data
With Tbl
.Name = "Data"
.Columns.append "Name", adChar, 50
.Columns.append "Indice", adInteger
.Columns.append "Class", adInteger
.Columns.append "Wall Area", adDouble
.Columns.append "Lumen Area", adDouble
.Columns.append "Fibre Per", adDouble
.Columns.append "Lumen Per", adDouble
.Columns.append "CenterLine", adDouble
.Columns.append "Fibre Width", adDouble
.Columns.append "Fibre Thick", adDouble
.Columns.append "Max Diam", adDouble
.Columns.append "Min Diam", adDouble
.Columns.append "Mean Diam", adDouble
.Columns.append "Aspect Ratio", adDouble
End With
Cat.Tables.append Tbl
Set Tbl = Nothing

' Activation des Recordset
ActiveDB

End Function

'**************************************************************************'
'*** Function-- ActiveDB ***'
'*** Description: Activation des Recordset ***'
'**************************************************************************'
Private Function ActiveDB()

' Initialisation
cmdado.ActiveConnection = Cat.ActiveConnection
cmdado.CommandText = " select * from Project"

' Activation de la table Project
rsProject.CursorLocation = adUseClient
rsProject.CursorType = adOpenDynamic
rsProject.LockType = adLockOptimistic
rsProject.Open cmdado

' Activation de la table Images
cmdado.CommandText = " select * from Images"
rsImages.CursorLocation = adUseClient
rsImages.CursorType = adOpenDynamic
rsImages.LockType = adLockOptimistic
rsImages.Open cmdado

' Activation de la table Data
cmdado.CommandText = " select * from Data "
rsData.CursorLocation = adUseClient
rsData.CursorType = adOpenStatic
rsData.LockType = adLockBatchOptimistic
rsData.Open cmdado

End Function

2 réponses

cs_thitoune Messages postés 124 Date d'inscription mardi 19 février 2002 Statut Membre Dernière intervention 7 mars 2004 2
12 août 2002 à 12:15
Tu oublies une chose fondamentale, lorque tu ouvres un Recordset avec la méthode Open par exemple dans ton code à la dernière ligne : rsData.Open, il faut utiliser la méthode Close pour fermer l'enregistrement sinon ca peut provoquer ce type de pb.
0
cs_Charlie Messages postés 110 Date d'inscription jeudi 9 mai 2002 Statut Membre Dernière intervention 11 mars 2010 1
12 août 2002 à 13:44
Allo...

Y'as-tu un moyen autre que d'ouvrir la BD et la fermer à toute les fois qu'on en a besoin? Car c'est la seul moyen que je vois! Autre question, comment ca se fait que lorsque je vais juste mettre mes variables à nothing avec de quitter, tout se passe à merveille sans avoir besoin d'un .close?

Par ailleurs, y'as-tu moyen de savoir si 1 objet est définie ou s'il est à nothing?

Merci!
0
Rejoignez-nous