Passaggio del parametro LIKE con vb 6...

giovedì 15 febbraio 2007 - 08.44

Mimmozzo87 Profilo | Junior Member

ho un problema----

ho creato un programma che gestisce un database contenenti 2 tabelle relazionate tra loro...

ho creato delle query...

con l'oggetto ADODC di visual basic 6 visualizzo tranquillamente tutte le query che ho fatto....

tranne quelle con l'operatore LIKE

devo scrivere allora io la SELECT????????

diciamo che con Access si aprova una specie di inputbox...ma in visual basic esce un errore in cui dice che nn è stato passato nulla come parametro...

"SELECT LISTA.ID, Cliente.Cognome, Cliente.Nome, LISTA.Prezzo, LISTA.Oggetto, LISTA.Acconto, LISTA.Data, LISTA.Ora"
FROM Cliente INNER JOIN LISTA ON Cliente.ID_CLIENTE = LISTA.ID_cliente
Where (((Cliente.Num_Documento) Like "*" & [Documento n° :] & "*"))
ORDER BY LISTA.ID;"


qusto ho scritto...cosa ce di sbagliato??? con vb non si apre la finestra per inserire il num_Documento....come posso fare...


COME POSSO FARE A FAGLI PASSARE PER PARAMETRO UN CAMPO???????



perfavore....AIUTO GRAZIE

squilibrium Profilo | Junior Member

Forse è perchè ti mancano gli apici singoli

"SELECT LISTA.ID, Cliente.Cognome, Cliente.Nome, LISTA.Prezzo, LISTA.Oggetto, LISTA.Acconto, LISTA.Data, LISTA.Ora"
FROM Cliente INNER JOIN LISTA ON Cliente.ID_CLIENTE = LISTA.ID_cliente
Where (((Cliente.Num_Documento) Like "'*" & [Documento n° :] & "* "))
ORDER BY LISTA.ID;"

ne va messo uno prima del * e uno dopo

Mimmozzo87 Profilo | Junior Member

questo codice che ti ho scritto è presso dalla query che mi ha sviluippato Access facendo la query guidata....

ora sto al negozio...quando vado a casa provo....GRAZIE

farò sapere...CIAO

ma nel posto precedente hai scritto la stessa SELECT o hai modificato il codice???

perke mi sembra la stessa.....potresti modificarla tu un attimo!!! non ci vuole niente...grazie..
nn vorrei perdere la testa....

squilibrium Profilo | Junior Member

Nella select precedente ti ho aggiunto gli apici vicino agli *

ciao

Mimmozzo87 Profilo | Junior Member

scusa...ma al mo primo messaggio dove inserisco il codice...vedo che gli apici ci sono sia prima che dopo *...

Mimmozzo87 Profilo | Junior Member

mi dice un errore...parametri mancanti 1....

non si apre l' inputbox della LIKE per inserire il numero documento....


NESSUN VALORE PER ALCUNI PARAMETRI NECESSARI

StefanoLep Profilo | Senior Member

Se usi SQL Server al posto del "*" devi utilizzare "%", ciao :-)

Mimmozzo87 Profilo | Junior Member

se utilizzo "%" al posto di "*" mi da errore di sintassi...

nn so se poi lo sto scrivendo male il codice...potresti modificarlo tu???

io ho fatto così...

SELECT LISTA.ID, Cliente.Cognome, Cliente.Nome, LISTA.Prezzo, LISTA.Oggetto, LISTA.Acconto, LISTA.Data, LISTA.Ora"
FROM Cliente INNER JOIN LISTA ON Cliente.ID_CLIENTE = LISTA.ID_cliente
Where (((Cliente.Num_Documento) Like "%" & [Documento n° :] & "% "))
ORDER BY LISTA.ID;





GRAZIE

StefanoLep Profilo | Senior Member

Da query analyzer dovrebbe funzionare così
SELECT LISTA.ID, Cliente.Cognome, Cliente.Nome, LISTA.Prezzo, LISTA.Oggetto, LISTA.Acconto, LISTA.Data, LISTA.Ora"
FROM Cliente INNER JOIN LISTA ON Cliente.ID_CLIENTE = LISTA.ID_cliente
Where (((Cliente.Num_Documento) Like '%NUMERODOC%'))
ORDER BY LISTA.ID

Da codice se passi la quey come stringa è così:

"SELECT LISTA.ID, Cliente.Cognome, Cliente.Nome, LISTA.Prezzo, LISTA.Oggetto, LISTA.Acconto, LISTA.Data, LISTA.Ora"
FROM Cliente INNER JOIN LISTA ON Cliente.ID_CLIENTE = LISTA.ID_cliente
Where (((Cliente.Num_Documento) Like '%" & [Documento n° :] & "'% "))
ORDER BY LISTA.ID"

Ciao

Mimmozzo87 Profilo | Junior Member

Così .....come hai detti tu...

SELECT LISTA.ID, Cliente.Cognome, Cliente.Nome, LISTA.Prezzo, LISTA.Oggetto, LISTA.Acconto, LISTA.Data, LISTA.Ora"
FROM Cliente INNER JOIN LISTA ON Cliente.ID_CLIENTE = LISTA.ID_cliente
Where (((Cliente.Num_Documento) Like '%NUMERODOC%'))
ORDER BY LISTA.ID

mi visualizza nessuno errore...nessua finestra per inserire il parametro num_documento e mi visualizza direttamente la tabella con un record vuoto

invece...

SELECT LISTA.ID, Cliente.Cognome, Cliente.Nome, LISTA.Prezzo, LISTA.Oggetto, LISTA.Acconto, LISTA.Data, LISTA.Ora"
FROM Cliente INNER JOIN LISTA ON Cliente.ID_CLIENTE = LISTA.ID_cliente
Where (((Cliente.Num_Documento) Like '%[NUMERODOC]%'))
ORDER BY LISTA.ID

se aggiungo Like '%[NUMERODOC]%'...mi visualizza tutti irecord ...

vorrei che si aprisse la finestra per inserire il parametro....come posso fare...
anke qui scrivo il codice sql nella proprietà RECORDSOURCE dell'oggetto ADODC

help....PLEASE...

StefanoLep Profilo | Senior Member

Prova così

dim s as string

s= "SELECT LISTA.ID, Cliente.Cognome, Cliente.Nome, LISTA.Prezzo, LISTA.Oggetto, LISTA.Acconto, LISTA.Data, LISTA.Ora"
FROM Cliente INNER JOIN LISTA ON Cliente.ID_CLIENTE = LISTA.ID_cliente
Where (((Cliente.Num_Documento) Like '%" & [NUMERODOC] & "%'))
ORDER BY LISTA.ID"

Adodc1.RecordSource = s
Adodc1.CommandType = adCmdText
Adodc1.Refresh

Mimmozzo87 Profilo | Junior Member

ancora nn ho provato....ma io non scrivo

s="select.....

uso la proprietà RecordSource...e li, scrivo direttamente SELECT.....senza usare nessuna variabile...

si può fare come lo sto interpretando io???

StefanoLep Profilo | Senior Member

Come hai fatto dovrebbe funzionare.
Il codice che ti ho suggerito puoi inserirlo in un pulsante per visualizzare un risultato diverso, filtrando in base ad un parametro (numero doc in questo caso).

Mimmozzo87 Profilo | Junior Member

ho provato....ancora come prima----

ho scritto nella proprietà RECORDSOURCE..SQL COMMAND....

SELECT LISTA.ID, Cliente.Cognome, Cliente.Nome, LISTA.Prezzo, LISTA.Oggetto, LISTA.Acconto, LISTA.Data, LISTA.Ora
FROM Cliente INNER JOIN LISTA ON Cliente.ID_CLIENTE = LISTA.ID_cliente
Where (((Cliente.Num_Documento) Like '%" & [NUMERODOC] & "%'))
ORDER BY LISTA.ID;

nessun errore....ma la tabella si visualizza con un record vuoto...forse xke nn mi sta dando la possibilità di inserire il codice...



Mimmozzo87 Profilo | Junior Member

una domanda....come posso allora fare per l'altro therd...quello riferito alla variabile codice...

perke potrei optare per qsta soluzione...

inserisco il codice documento in una varibile CODICE e confronto con il codice documento di ogni record....

mi puoi aiutare perfavore????..

StefanoLep Profilo | Senior Member

Mi posti il codice completo del "Bottone" che dovrebbe aggiornare la tua griglia?

Mimmozzo87 Profilo | Junior Member

in pratica...

in una forma ce una griglia.....
io seleziono un record e all'evento del CLICK datagrid in una variabile codice inserisco num_documento

CODICE=NUM_DOCUMENTO

schiacciando succesivamente al record selezionato il pulsante visualizza...

il pulsante mi fa andare in un'altra form in mi dovrebbe in una griglia tutti tutti gli id e i vari campi confrontando il NUM_Documento con la varibile CODICE...

mi potresti aiutare in modo che SQL COMMAND mi riconosca il codice in cui è presente il NUM_DOCUMENTO????

grazie.....se ti servono altre informazioni chiedi pure...aspetto risposta...ancora grazie

StefanoLep Profilo | Senior Member

Scusa ma con il codice che ti avevo suggerito dovrebbe funzionare...
Cosa c'è nel tuo pulsante Visualizza ( a parte l'apertura di una nuova form)?

Mimmozzo87 Profilo | Junior Member

mi dice....nome esterno non definito....

e si riferisce a...

[NUMERODOC]

ho scritto qst codice che mi hai dato tu...uguale...

Dim s As String

s = "SELECT LISTA.ID, Cliente.Cognome, Cliente.Nome, LISTA.Prezzo, LISTA.Oggetto, LISTA.Acconto, LISTA.Data, LISTA.Ora FROM Cliente INNER JOIN LISTA ON Cliente.ID_CLIENTE = LISTA.ID_cliente Where (((Cliente.Num_Documento) Like '%" & [NUMERODOC] & "%')) ORDER BY LISTA.ID;"

Adodc1.RecordSource = s
Adodc1.CommandType = adCmdText
Adodc1.Refresh

cosa dovrei modificare...??

StefanoLep Profilo | Senior Member

[NUMERODOC] questo lo devi sostituire con a tua variabile

Mimmozzo87 Profilo | Junior Member

scusami.....qui con Accees so che dovevi scrivere il testo che volevi vedere nella finestra in cui devi inserire l parametro NUM_CODICE....

gentilmente mi potresti spiegare cosa devo in serire in quella varibile??

perche io nn ho creato nessuna varibile...

dovrei mettere il num_codice che deve confrontare però sottoforma di variabile???

NUMCODICE="LBNCSMRT5R"

grazie per il fastidio

Mimmozzo87 Profilo | Junior Member

FUNZIONA::FUNZIONA::::::

GRAZIE.....GRAZIE.....

domani metterò un altro therd spero che mi potrai aiutare...

te lo posso descrivere in breve....

in pratica in da effettuare una ricerca veloce nello scorrere il database....

in una textbox per esempio schiaccio la lettera 'S' e il record si deve posizionare sula lettera S

in caso saresti in grado di aiutarmi????

grazie per tutto quello che mi hai fatto...e se ti ho fatto perdere del tempo...ancora grazie...

in caso...mio indirizzo msn Mimmozzo87@hotmail.it

StefanoLep Profilo | Senior Member

Scusa ora devo scappare, se non risolvi continuiamo lunedì
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5