[VBA/ADO] Impossible de choisir une valeur ds ma combo

Impossible de choisir une valeur ds ma combo [VBA/ADO] - VB/VBA/VBS - Programmation

Marsh Posté le 25-11-2003 à 16:59:15    

Salut,
 
Je dispose d'une base de données Access avec une table myTable contenant des nombres dans le champ "ID"
 
Lorsque j'ouvre un formulaire, je remplis l'une de mes combo box avec ce code :
 
 
   

Code :
  1. Dim cnn as New ADODB.Connection
  2.   Dim rst as ADODB.Recordset
  3.   cnn.CursorLocation = adUseClient
  4.   cnn.Open "Provider=SQLOLEDB;Data Source=GAMESCOMPUTER;Initial     Catalog=myDb;User Id=sa;Password="
  5.   Set rst = cnn.Execute("SELECT ID FROM myTable", , adCmdStoredProc)


 
Ca marche tres bien, et ma combo est remplie avec les bons nombres. Cependant, lorsque je tape un nombre de la liste à la main, et que j'appuie sur Entrée pour le sélectionner, Access me dit : "The text you entered is not an item in the list"
par contre, si je sélectionne une valeur à la souris, ca marche tres bien...
 
Des idées?
 
Merci.

Reply

Marsh Posté le 25-11-2003 à 16:59:15   

Reply

Marsh Posté le 25-11-2003 à 17:01:40    

parce que la valeur que tu as tapée au clavier ne correspond à aucun élément de la liste. Si tu penses que si, ce doit être une subtilité. Ici tu parles d'un nombre, n'est-ce pas un problème de formattage de nombre?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 25-11-2003 à 17:16:23    

Bah ce sont des nombres tout ce qu'il y a de plus classique (des autonumbers meme)
 
En fait, je viens d'essayer quelque chose!
 
je sélectionne "50" à la souris dans la liste de la Combo! Ca marche! Ensuite, je fais un CTRL C de la valeur (je la copie en mémoire). Ensuite, je prends une autre valeur à la souris, genre 30. Et là, je fais le CTRL V (je colle) la valeur que j'avais copiée, et là...ca marche !
 
Ce qui veut dire que si je tape 50 à la main, ca ne marche pas, mais si je fais un "coller" d'un 50, ca marche ! C'est fou quand meme (mais ca ne résoud pas mon probleme)
 
Est ce que ca peut venir du fait que ma colonne ID est de type numérique?

Reply

Marsh Posté le 25-11-2003 à 19:51:42    

Franchement, je n'y comprends rien :
 
-Si ma combo box est positionnée sur une valeur valide, et que je "colle" une autre valeur en faisant CTRL C puis ENTREE, ca marche
-Si ma combo box est positionnée sur une valeur valide, et que je tape une valeur à la main, ca ne marche pas
 
-Si ma Combi Box n'est pas positionnée sur une valeur valide, que je Colle une valeur (CTRL  C° ou que je la tape à la main, ca ne marche pas!
 
D'autre part, je tiens à préciser que ce symptome n'apparait qu'avec les champs de type numérique et avec un Recordset ADO! Lorsque j'utilise un recordset DAO, tout marche normalement!... (et je suis obligé d'utiliser du ADO, car j'attaque une base SQL Server)
 
Quelqu'un pourrait il essayer et me dire ce qu'il en pense? Je suis tres sceptique!
 
Merci.

Reply

Marsh Posté le 25-11-2003 à 21:43:10    

Bon,  voila, j'ai trouvé une solution à mon probleme, il suffit de convertir (du coté de SQLServer) ma valeur numérique en chaine de caractere :
 
CONVERT(VARCHAR(6),ID)
 
Je trouve ça fou qu'on en soit arrivés à trouver de telles combines, et que tout ne marche pas naturellement, mais ma foi...on fait avec ce qu'on a!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed