Probleme add new!!

dirickles Messages postés 72 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 3 novembre 2006 - 5 août 2004 à 19:13
dirickles Messages postés 72 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 3 novembre 2006 - 8 août 2004 à 10:45
Bonjour,

j ai besion d'aide
j ' essaye de ajouter des données dans une base de données ACCESS par la commande AddNEW. Seulement dans mes champs que j enregistre, certain sont vides.
A cause des c champs vides que j essaye d'enregistrer, mon enregistrement plante!!!
en utilisant ON error resume next mes données ne sont pas enregitrer!!

Code :

RS.ADDNEw
RS!Champ1=Text1.text

RS.Update
RS.Close

VOila en gros l algo de mon code

Merci d 'avance

youp le ouf

10 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
5 août 2004 à 19:48
Salut,

C koi ton msg d'erreur ?

Cordialement

CanisLupus
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
5 août 2004 à 19:50
A priori, les champs que tu ne renseignes pas sont du style "chaîne vide autorisée = non" et ou "utilsation de nulll autorisé = non".

Cordialement

CanisLupus
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 août 2004 à 21:00
Il te faut au moins stocké un caratère dans les champs ou les chaines vides ne sont pas autorisé, par exemple un espace, ou alors, pour des champs numériques, mets "0"...

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
izords Messages postés 20 Date d'inscription samedi 27 avril 2002 Statut Membre Dernière intervention 4 mars 2013
5 août 2004 à 21:09
Si ta seulement un champs dans ta bd tu peux faire ca

if trim(text1.text) <> "" then
RS.ADDNEw
RS!Champ1=Text1.text
RS.Update
end if

RS.close

Si ta plus qu'un champs

RS.ADDNEw
if trim(text1.text) <> "" then
RS!Champ1=Text1.text
end if

......

RS.Update
RS.close
0

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

Posez votre question
dirickles Messages postés 72 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 3 novembre 2006
6 août 2004 à 07:46
Merci je vé essayer toutes vos conseil!!!

SInon je n'est pas message d'erreur spéciale mais kan j'effectue une deuxieme sauvegarde il m'affiche un message d'erreur du style : "La base est encore ouverte, impossible d'enregistrer" en gros ca ressemble a ce message!!!

youp le ouf
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
6 août 2004 à 11:16
heu .... dirickles, question con : tu n'essaierais pas de refaire un addnew après le close tout de même ?

Cordialement

CanisLupus
0
dirickles Messages postés 72 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 3 novembre 2006
6 août 2004 à 18:56
Et je susi pas un naze en programmation mais la base de données je connait pas top.

J ouvre ma base de données en dynamique, j utilise aucun composant commme ADO mais une connexion ODBC

Ex code :
Public G_Base As ADODB.Connection
Public RS As New ADODB.Recordset

If G_Base Is Nothing Then
Set G_Base = New ADODB.Connection
End If
G_Base.Provider = "Microsoft.Jet.OLEDB.4.0"
G_Base.Properties("User ID") = "Admin"
G_Base.Open App.Path & "\MECI.mdb"

Dim requete As String

requete = "SELECT * FROM TP44_Data"
RS.Open requete, G_Base, adOpenDynamic, adLockOptimistic

RS.AddNew
ID = CLng(RS!ID)
RS!N_Voie = CInt(WMesures.Label1(i + 7).Caption)
RS!N_Serie = WMesures.TxtNum_Serie(i).Text
RS!Type_tete = WMesures.CmbType(i).Text
RS!Date = WMesures.TxtDate(i).Text
RS!Bendix = WMesures.TxtBendix(i).Text
RS!Capsule = WMesures.TxtCaps(i).Text
RS!Axe_Rig = WMesures.TxtAxeRig(i).Text
RS!Traitement = False

RS.Update
RS.Close

Voila et g tjrs l erreur : Impossible d enregistrer un champ NULL

et g pas trouver d'option dans le gestionnaire de base de données vb .

Ma base de données je les créer avec l utilitaire de vb. C peut etre pour ca??? je c pas

Merci

En tou cas bien mdr kan g ton message :
eu .... dirickles, question con : tu n'essaierais pas de refaire un addnew après le close tout de même ?

Cordialement

CanisLupus

youp le ouf
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
6 août 2004 à 20:09
DSL, g pas voulu me moquer, juste que suivant ta question de départ, on ne peux pas te répondre.

A partir du code que tu livres, g qques observations :

- si tu crées une base avec l'assistant ACCESS, par défaut tu as les options "Null interdit=non" et "chaine vide autorisée=non".

- Pourquoi ta ligne "ID = CLng(RS!ID)" dans le addnew ? g pas testé encore mais je pense que tant que tu n'as pas fait de update, même si c un champ "numeroauto", la valeur est nulle.

- En dernier lieu, faut vérifier (mais je suppose que tu l'as fait) si le nombre, le type de valeur et la valeur des données que tu veux enregistrer correspondent au nombre et à la définition des champs de ta table.

A mon avis, c le 2ème point qui pose problème. Je m'en vais tester ça.

Cordialement

CanisLupus
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
6 août 2004 à 20:31
Bon, g testé le point 2 et ça marche, j'avais jamais utilisé et g appris qque chose
Reste plus que la valeur que tu veux mettre ds tes champs

Cordialement

CanisLupus
0
dirickles Messages postés 72 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 3 novembre 2006
8 août 2004 à 10:45
le point 2 je le stocke dans une variabel me permetant de la passer en parametres dans d'autres funtion!!

sinon je pense que mon probleme vient du point 1 qut tu ma enoncé.

comme je te les dit je crer ma base sous vb pas sous access il faut peu etre que je la créer sous access qui me permet de parametrer mes champs comme tu le décrit dans le piont 1 je te tien au courant!!!

MERCI!!

youp le ouf
0
Rejoignez-nous