Meilleur auteur de réponses
Alimenter une table dans une base de données access

Question
-
Bonjour,
Je voudrais sauvegarder les éléments d'une collection qui s'appelle "LesLames" et qui contient un certain nombre d'éléments de la classe "Lame" comprenant 18 propriétés diverses.
Pour cela, je crée d'abord une table vide adéquate (là, ça marche) et ensuite j'alimente ma table. Et c'est là que ça coince. voici mon code :
Dim NomDeTable As String NomDeTable = InputBox("Donner un nom explicite à la configuration") Mycommand.CommandText = "SELECT * INTO " & NomDeTable & " FROM TableBase" MyConnexion.Open() Mycommand.ExecuteNonQuery() Dim L As Lame For Each L In LesLames Mycommand.CommandText = "INSERT INTO " & NomDeTable & " (Numéro, Nom, Nature, Epaisseur, Lambda, EpsilonGauche, EpsilonDroite, CouleurL, CouleurR, StyleR, Peau, NatureP, EpaisseurP, LambdaP, EpsilonInterneP, EpsilonExterneP, EstGaz, EstIsolant) VALUES(" & L.Numéro.ToString & ", " & L.Nom.ToString & ", " & L.Nature & ", " & L.Epaisseur.ToString & ", " & L.Lambda.ToString & ", " & L.EpsilonGauche.ToString & "," & L.EpsilonDroite.ToString & "," & L.CouleurL.ToString & "," & L.CouleurR.ToString & "," & L.StyleR.ToString & "," & L.Peau.ToString & "," & L.NatureP.ToString & "," & L.EPaisseurP.ToString & ", " & L.LambdaP.ToString & ", " & L.EpsilonInterneP.ToString & ", " & L.EpsilonExterneP.ToString & ", " & L.EstGaz.ToString & ", " & L.EstIsolant.ToString & ")" Mycommand.ExecuteNonQuery() Next MyConnexion.Close()
Le débogeur s'arrête au niveau "for each" avec le message suivant :
Merci de m'aider.
Pierre Allemand
Réponses
-
Bonjour,
Vous avez du oublié d'initialiser l'un de vos objets (MyCommand, MyConnexion, ...).
Pouvez nous dire la ligne dont l'exécution a provoquer l'exception ?
Cordialement.
- Proposé comme réponse Ould MouradEditor lundi 16 avril 2012 18:59
- Marqué comme réponse Ould MouradEditor mardi 17 avril 2012 07:55
-
Bonjour,
Cette erreur indique qu'un objet n'a pas été initialisé (Nothing) donc le plus simple, lorsque l'erreur survient, est de placer sucessivement le pointeur de la souris sur tous les objets de la ligne (ce qui affiche une "bulle" avec la valeur de l'objet) pour voir celui ou ceux qui affichent "Nothing" comme valeur :
Mon exemple n'est pas très bon. Dans ce cas précis, se positionner sur L ce qui affichera à côté une interface permettant d'examiner les propriétes de L. Vérifier que l'une d'elle n'est pas "nothing" (par exemple L.CouleurL, L.CouleurR etc... toutes celles qui sont utilisées dans la ligne).
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Modifié Patrice ScribeMVP, Moderator lundi 16 avril 2012 16:48 Exemple pas bon
- Proposé comme réponse Ould MouradEditor lundi 16 avril 2012 18:59
- Marqué comme réponse Pierre Allemand mardi 17 avril 2012 04:57
Toutes les réponses
-
Bonjour,
Vous avez du oublié d'initialiser l'un de vos objets (MyCommand, MyConnexion, ...).
Pouvez nous dire la ligne dont l'exécution a provoquer l'exception ?
Cordialement.
- Proposé comme réponse Ould MouradEditor lundi 16 avril 2012 18:59
- Marqué comme réponse Ould MouradEditor mardi 17 avril 2012 07:55
-
Salut,
tu n'as pas oublier une instanciation par hasard ??!!
Dim L As Lame = New Lame()
du moins je me base sur les conseil de depanage de ta capture ecran
et puis avant de donner un nouvel ordre sql a une meme commande efface l'ancien
faire MyCommand.CommandText=String.Empty ou une autre maniere que tu connat pour effacer un string
J'ai deja obtenu des erreurs a ce propos
Amicalement
la FOI déplace les montagnes et bien DOTNET les effaces complétement.
- Modifié mmw01 lundi 16 avril 2012 14:46 Erreur
-
-
-
Bonjour,
Cette erreur indique qu'un objet n'a pas été initialisé (Nothing) donc le plus simple, lorsque l'erreur survient, est de placer sucessivement le pointeur de la souris sur tous les objets de la ligne (ce qui affiche une "bulle" avec la valeur de l'objet) pour voir celui ou ceux qui affichent "Nothing" comme valeur :
Mon exemple n'est pas très bon. Dans ce cas précis, se positionner sur L ce qui affichera à côté une interface permettant d'examiner les propriétes de L. Vérifier que l'une d'elle n'est pas "nothing" (par exemple L.CouleurL, L.CouleurR etc... toutes celles qui sont utilisées dans la ligne).
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Modifié Patrice ScribeMVP, Moderator lundi 16 avril 2012 16:48 Exemple pas bon
- Proposé comme réponse Ould MouradEditor lundi 16 avril 2012 18:59
- Marqué comme réponse Pierre Allemand mardi 17 avril 2012 04:57
-
J'ai modifié les champs de ma table en les faisant tous passer à "string"
J'ai remplacé ma collection LesLames par un tableau à 2 dimensions plus simple à manier et surtout plus efficace car je peux repérer la position de chaque lame par son indice (vieux réflexe VB6).
Bref, j'ai fait disparaître les objets ... Et tous mes ennuis ont disparu... (Vive la POO)
Merci de votre aide.
Pierre Allemand