Verifier si la base de donnée est vide access

boss2000 Messages postés 40 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 15 avril 2006 - 6 sept. 2005 à 12:08
hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 6 janvier 2006 - 6 sept. 2005 à 17:00
bonjour a tous
jai un petit soucis

je vaux verifié ci ma base de donnée est vide

voici le code qui ne marche pas :

Data2.DatabaseName = "c:\stock.mdb" Data2.RecordSource " select num_carte from stock where num_carte" & num & ""




If (Data2.Recordset!num_carte) = 0 Then ' sa block ici!!!!!!!!!!!!!
Set Data1 = DBEngine.OpenDatabase("c:\stock.mdb")
Data1.Execute (" insert into ( num_carte,nombre_stock,date_stock) values( " & num & ", " & nombre & ", # " & moi & " #)")

ElseIf Data2.Recordset!num_carte > 1 Then

Set Data1 = DBEngine.OpenDatabase("c:\stock.mdb")Data1.Execute ("update stock set nombre_stock nombre_stock +" & nombre & " , date_stock# " & moi & "# where num_carte = " & num & "")
Data1.Close
Set Data1 = Nothing

MsgBox " l'approvisionnement a bien été enregistré"
End If

10 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 sept. 2005 à 12:15
Essaye ceci :



Data2.DatabaseName = "c:\stock.mdb"

Data2.RecordSource " select num_carte from stock where num_carte" & num & ""



If Data2.Recordset.RecordCount = 0 Then Exit Sub



If (Data2.Recordset!num_carte) = 0 Then



Set Data1 = DBEngine.OpenDatabase("c:\stock.mdb")


Data1.Execute (" insert into ( num_carte,nombre_stock,date_stock)
values( " & num & ", " & nombre & ", # " & moi
& " #)")



Else



If Data2.Recordset!num_carte > 1 Then



Set Data1 = DBEngine.OpenDatabase("c:\stock.mdb")

Data1.Execute
("update stock set nombre_stock = nombre_stock +" & nombre & "
, date_stock =# " & moi & "# where num_carte = " & num
& "")

Data1.Close

Set Data1 = Nothing

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
boss2000 Messages postés 40 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 15 avril 2006
6 sept. 2005 à 12:26
sa ne marche pas

en faite jai vider ma base de donnée. Et je veux vérifier que ma base de donnée est vide si elle vide ajouter des données mais si elle contient des infos faire une mise a jour
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 sept. 2005 à 12:45
Ben si elle est vide, le RecordCount de ton recordset doit être égal à 0, donc je ne vois pas pourquoi ca ne marche pas.



D'ailleurs, qu'est-ce que tu veux dire pas "ne marche pas" ? Message
d'erreur ? Ca ne fais pas ce que tu veux (et qu'est-ce que tu veux
faire alors) ?

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
boss2000 Messages postés 40 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 15 avril 2006
6 sept. 2005 à 12:48
avec le code que je tes donnée elle m'affiche comme erreur " bloc with non défini"
mais avec tes rajout!!

merci encore
je sais pas si tu vois ou est le probleme
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 sept. 2005 à 12:54
Si c'est un problème de "bloc with" c'est sûrement un problème qui vient des

"Data2.Recordset!nom du champ" Perso, je leur préfère largement :

Data2.Recordset.Fields("nom du champ").value

C'est plus long à taper, mais c'est aussi plus sûr et plus explicite.


A moins que ce soit un objet qui ne soit pas instancié... et donc invalide !


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
boss2000 Messages postés 40 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 15 avril 2006
6 sept. 2005 à 12:58
jai essayer avec ton code jai toujours le meme msg d'erreur tjrs au meme endroit.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 sept. 2005 à 13:08
A quelle ligne ?

If (Data2.Recordset!num_carte) = 0 Then ' sa block ici!!!!!!!!!!!!! ?


Vérifie la valeur du RecordCount et du num_carte juste avant :



MsgBox Data2.Recordset.RecordCount


MsgBox Data2.Recordset.Fields("num_carte").value


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
boss2000 Messages postés 40 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 15 avril 2006
6 sept. 2005 à 14:46
voici la ligne ou jai un soucis

If (Data2.Recordset!num_carte) = 0 Then ' sa block ici!!!!!!!!!!!!! ?
0
hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 6 janvier 2006
6 sept. 2005 à 16:28
et bien à la place de cette ligne écris plutôt :

If Data2.Recordset.eof then

Set Data1 = DBEngine.OpenDatabase("c:\stock.mdb")
Data1.Execute (" insert into ( num_carte,nombre_stock,date_stock) values( " &
num & ", " & nombre & ", # " & moi & " #)")

elseIf Data2.Recordset!num_carte > 1 Then

Set Data1 = DBEngine.OpenDatabase("c:\stock.mdb") Data1.Execute ("update stock set nombre_stock nombre_stock +" & nombre & " , date_stock# " & moi & "# where num_carte = " & num & "")
Data1.Close
Set Data1 = Nothing


'en fait il teste simplement si tu est à la fin de ta requete. Si c'est le cas ca veut dire qu'il n'y a aucun enregistrement et donc que la base est vide voilà


retient moi o courant avant 17h si possible. A+
0
hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 6 janvier 2006
6 sept. 2005 à 17:00
au pire à la place de
"elseif Data2.Recordset!Num_Carte>1 then"
ecris simplement "else" ça va faire pareil surtout que ya de grande chance que ça plante aussi
0
Rejoignez-nous