bjipowa
Messages postés47Date d'inscriptionmercredi 18 août 2004StatutMembreDernière intervention29 mars 2007
-
31 mai 2005 à 23:18
cs_ITALIA
Messages postés2169Date d'inscriptionvendredi 20 avril 2001StatutMembreDernière intervention30 juin 2009
-
1 juin 2005 à 15:07
Hello hello,
Voila, j'ai créé un projet et je voudrais insérer desdonnées dans ma base de donnée. Je crééune requet eINSERT, mais apres verification de ma requete, j'ai une erreur de type :
Erreur d'execution 3219 :
Operation non valide.
Voila mon code source, si quelqu'un peut me dire la ou est l'erreur et si il y un pb d'écriture :
' Définition base de donnée
Set db = OpenDatabase("L:\BTS\PTI\VB\FNCI\fnci.mdb")
' requete
Set Donnee = db.OpenRecordset("SELECT max(num_fnci) AS max from fnci")
' si il y a des resultats
If Donnee.RecordCount <> 0 Then
' on donne a la variable le numero de fnci trouvée et on incremente
Newnum = Donnee("max") + 1
End If
Set Donnee = db.OpenRecordset("INSERT INTO FNCI VALUES (" & Newnum & ",#" & dateS & "#, '" & description.Text & "','" & cause.Text & "', '" & nom_prenom.Text & "'," & ai & "," & af & ");")
' on libere les ressources
Set db = Nothing
Set Donnee = Nothing
cs_drahcir
Messages postés745Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention15 septembre 20094 1 juin 2005 à 08:53
Salut,
dans ta requête :
"INSERT INTO FNCI VALUES (" & Newnum & ",#" & dateS & "#, '" & description.Text & "','" & cause.Text & "', '" & nom_prenom.Text & "'," & ai & "," & af & ");"
il me semble que tes virgules ne sont pas toujours encadrées par des ' : nom_prenom.Text & "'," .
C'est juste une idée, on ne sait jamais, parfois (souvent en ce qui me concerne ) on cherche longtemps à cause de petits trucs comme ça.
cs_ITALIA
Messages postés2169Date d'inscriptionvendredi 20 avril 2001StatutMembreDernière intervention30 juin 20099 1 juin 2005 à 08:59
Personnellemnt je n'utilise jamais cette Mathode d' INSERT mais :
Définition base de donnée
Set db = OpenDatabase("L:\BTS\PTI\VB\FNCI\fnci.mdb")
Set Donnee = db.OpenRecordset("SELECT max(num_fnci) AS max from fnci")
If Donnee.RecordCount <> 0 Then
Newnum = Donnee("max") + 1
End If
Set Donnee = db.OpenRecordset("SELECT * FROM FNCI")
Donnee.AddNew
Donnee("num")=num.text
Donnee("date")=date.text
Donnee("description")=description.text
Donnee("cause")=cause.text
Donnee("nom_prenom")=nom_prenom.text
Donnee("ai")=ai.text
Donnee("af")=af.text
Donnee.UpDate
Set db = Nothing
Set Donnee = Nothing
bjipowa
Messages postés47Date d'inscriptionmercredi 18 août 2004StatutMembreDernière intervention29 mars 2007 1 juin 2005 à 09:07
Oki merci tout le moe ! J'ai déja essayé en mettant les données de ma table FNCI...
Voila structure de ma table FNCI :
Num_FNCI -------> Cle primaire (numeric)
Date_creation -------> Date
Description_fnci -------> Texte (mémo dans acess)
Cause_fnci -------> Texte (mémo dans acess)
Nom -------> Texte
Num_ai # -------> Numeric (en relation avec une autre table AI)
Num_af # -------> Numeric (en relation avec une autre table AF)
Apres verification, il n'y avait pas d'erruer dans ma requete donc je vais tenter la méthode d'Italia et je verrai si cela fonctionne :)
bjipowa
Messages postés47Date d'inscriptionmercredi 18 août 2004StatutMembreDernière intervention29 mars 2007 1 juin 2005 à 09:07
Oki merci tout le moe ! J'ai déja essayé en mettant les données de ma table FNCI...
Voila structure de ma table FNCI :
Num_FNCI -------> Cle primaire (numeric)
Date_creation -------> Date
Description_fnci -------> Texte (mémo dans acess)
Cause_fnci -------> Texte (mémo dans acess)
Nom -------> Texte
Num_ai # -------> Numeric (en relation avec une autre table AI)
Num_af # -------> Numeric (en relation avec une autre table AF)
Apres verification, il n'y avait pas d'erruer dans ma requete donc je vais tenter la méthode d'Italia et je verrai si cela fonctionne :)
bjipowa
Messages postés47Date d'inscriptionmercredi 18 août 2004StatutMembreDernière intervention29 mars 2007 1 juin 2005 à 14:41
Voila, en fait, c'est comme la modif ou l'insert, on est obligé de créer la requete de selection puis de supprimer les resultats dans la table...
Voila le code qui pose probleme et que j'ai mis :
Set SupTR db.OpenRecordset("SELECT * FROM FNCI_TRAITEMENT WHERE FNCI_TRAITEMENT.Num_fnci " & num_fnci & " AND FNCI_TRAITEMENT.Num_traitement = TRAITEMENT.Num_traitement")
SupTR.Delete
:: FNCI_TRAITEMENT ::
num_fnci
num_traitement
:: TRAITEMENT ::
Num_traitement
Date_creation
Nom
Quoi
Quand
Et voila le souci :
Erreur d'execution '3027' :
Mise ajour impossible : La base de donnée ou l'objet est en lecture seule
Sa ne me le fait pas pour la suppression dans la table FNCI qui elle marche très bien (code ci dessous) : Set SupFNCI db.OpenRecordset("SELECT * FROM FNCI WHERE Num_fnci " & num_fnci & "")
SupFNCI.Delete
J'ai modifier mes types de jointures, j'ai mm enlever toutes jointure pour ester, mais cela me le fait a chaque fois.