Erreur champ date ou code postal vide, Requête SQL Insert Into

micou

XLDnaute Nouveau
Bonjour à tous,

Je tiens tout d'abord à remercier M. BOISGONTIER et SILKYROAD pour leurs contributions.

Débutant en VBA, j'essaie de créer un formulaire me permettant de suivre des prospects. En gros un formulaire CRM_Prospects.xls de saisie qui alimente une feuille dans le même classeur mais également un fichier fermé Base_prospects.

Je bloque sur plusieurs points depuis le début de la semaine.

1- En m'inspirant des exemples de M. BOISGONTIER, j'ai intégré des textbox avec des format de saisie.
Si ces textboxs ne sont pas renseignés, la requete SQL INSERT INTO ne fonctionne pas. J'ai essayé de rendre ces champs optionnels avec un IIF(ISNULL...) mais sans succès.

2- Pour supprimer des enregistrements sur le fichier fermé, je n'arrive pas à faire fonctionner un delete From. Avez-vous une piste ?

3- Afin, j'aimerai mettre les id en 1ère colonne de ma listbox sans que cela modifie l'affiche dans les textbox.

N'arrivant pas à faire une recherche intuitive dans une listview, je me suis rabattu. Je continue mes "bidouilles"

Merci pour votre aide

Micou
 

Fichiers joints

micou

XLDnaute Nouveau
Bonjour

Quelqu'un pourrait-il m'aiguiller vers un début de solution ?

je vous remercie par avance

Micou
 

tatiak

XLDnaute Barbatruc
Bah déjà oublie le Delete, sur un xl c'est pas possible, c'est une des limites avec des fichiers xl
 

micou

XLDnaute Nouveau
Dommage, je vais être obligé de faire une mise à jour complète. Merci pour ce 1er élément de réponse
 

micou

XLDnaute Nouveau
Lorsque j'effectue la requête suivante et que je remplis pas les champs formatés (comme les dates : ex variables 24 ou 26), cela ne fonctionne pas.
VB:
strSQL = "INSERT INTO [" & Feuille & "$] " _
        & "VALUES ( '" & variable(1) & "', '" & variable(2) & "', '" & variable(3) & "', '" & variable(4) & "', '" & variable(5) & "', '" & variable(6) & "', '" & variable(7) & "', '" & variable(8) & "', '" & variable(9) & "', '" & variable(10) & "', '" & variable(11) & "', '" & variable(12) & "', '" & variable(13) & "', '" & variable(14) & "', '" & variable(15) & "', '" & variable(16) & "',#" & variable(17) & "#, #" & variable(18) & "#, '" & variable(19) & "', '" & variable(20) & "', '" & variable(21) & "', #" & variable(22) & "#, '" & variable(23) & "', #" & variable(24) & "#, '" & variable(25) & "', #" & variable(26) & "#)"
j'ai fait des essais avec un IIF(ISNULL...), mais sans succès.
 

tatiak

XLDnaute Barbatruc
Bah, déjà essaye d'insérer un seul champs pour tester :
VB:
strSQL = "INSERT INTO [" & Feuille & "$] (Nom) VALUES ('" & variable(1) & "')"
Si le test est ok, ajoute une 2ème, puis 3ème ... jusqu'à voir à quel endroit ça coince

Nb1 : c'est plutôt une 'bonne' pratique que d’énoncer les entêtes dans un INSERT : (Nom, Prenom, ....)
Nb2 : attention à ce que variable(1) (et suivantes) ne contienne pas d'apostrophe, auquel cas il faut les doubler.
Nb3 : transforme les dates en long integer et oublie les ## (les ## c'est pour les tables Access)
Nb4 : important de nommer les entêtes de colonnes sans espace et éviter les accents : Telephone_portable mieux que Téléphone portable
 

Haut Bas