|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2003
Messaggi: 177
|
Info sul metodo Find in ADO
![]() Sono difronte a un piccolo problema. La seguente stringa in visual basic docrebbe essere corretta sintatticamente, ma genera un errore di run time. MyTable.Find ("Codice Prodotto = ' " & txtelem(0).Text & " ' ") In pratica io volevo trovare nella tabella del mio database se il codice del prodotto non venga ripetuto. Sapete consigliarmi? Grazie per il vostro interessamento. Saluti da prodan |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Aug 2001
Città: Gerenzano
Messaggi: 129
|
Che errore viene generato?
... sei sicuro che txtelem(0).Text non contenga degli apici (Virgoletta singola) ... perchè in questo caso bisogna rimpiazzarle con doppi apici |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Aug 2001
Città: Gerenzano
Messaggi: 129
|
Che errore viene generato?
... sei sicuro che txtelem(0).Text non contenga degli apici (Virgoletta singola) ... perchè in questo caso bisogna rimpiazzarle con doppi apici |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Apr 2003
Messaggi: 177
|
Questa è la stringa che ho scritto:
MyTable.Find ("Codice Prodotto = ' " & txtelem(0).Text & " ' ") E l'errore di run time che viene generato è il 3001. Forse proverò con una SELECT se la find non funziona e poi credo che sia poco efficiente. Ma però sono cmq interessato a capire come funziona il metodo find, perchè nella guida msdn non è molto chiaro. |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Apr 2003
Messaggi: 177
|
txtelem(0).text come penso che tu abbia capito è una text box in cui dovrei insrire un codice che verrà immesso nella tabella del database.
Non avendo utilizzato come chiave primaria un campo ID di tipo contatore proprio perchè il codice deve essere inserito dall'utente in base a quello dei propri prodotti. Quindi quale può essere la causa di quell'errore? ![]() |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Jul 2001
Città: Riccione
Messaggi: 74
|
1. prova a mettere i + al posto degli &
2. se anche cos' non dovesse funzioanre, prova a memorizzarti su una variabile la stringa della textbox usando la funzione str() es: a = str (txtelem(0).Text) 3. se anche così ti dovesse dare dei problemi, davanti all'str mettici un trim a = trim (str (txtelem(0).Text)) non so xchè, ma la funzione str() aggiunge uno spazio davanti alla stringa, mentre il trim leva lo spazio (puoi farlo solo se in txtelem(0).Text ci sono dei numeri, se nella text ci sono dei caratteri non credo che possa funzionare, xchè eliminerebbe anche gli spazi al suo interno). ciao. |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Aug 2001
Città: Gerenzano
Messaggi: 129
|
Concordo con quanto scritto da 'A\|dR3\V'
L'errore 3001 è il seguente: The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another. Il che significa che il filtro che stai eseguendo utilizza un criterio che non è compatibile con il valore dei campi. Ad esempio imposti un filtro di tipo stringa ad un campo numerico Es: .filter = "CampoNumerico = 'TESTO'" Prova a verificare se la tipologia del campo 'CodiceProdotto' accetta valori stringa / Null ecc... |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Apr 2003
Messaggi: 177
|
Non funziona ne con la sostituzione dei & con i +, ne utilizzando la Trim(Str(txtelem(0).Text)) con tutte e due le funzioni viene generato l'errore di run time 13.
Il campo ne ldatabase access è di testo e nel visual basic ho impostato il dataformat come generale. Ma non funziona nulla |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Aug 2001
Città: Gerenzano
Messaggi: 129
|
Ops... avevo letto di fretta!
l'istruzione STR() ... è completamente inutile perchè serve per convertire un formato numerico in un formato Variant/Stringa. Nel tuo caso avendo a che fare con dei controlli textBox txtelem() basta che usi Trim(txtelem(0).Text) mi ero confuso con l'istruzioen Cstr() che conversione un'espressione in formato stringa. |
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Apr 2003
Messaggi: 177
|
Con la trim genera l'errore di run time 3001.
Non so proverò con una select. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:52.