Query

lunedì 31 gennaio 2011 - 10.25
Tag Elenco Tags  Access (.mdb)

Se2 Profilo | Junior Member

Ciao ho questo codice

If Not IsNull(strTxtRc) Or Trim(strTxtRc) = "" Then
strWhere = "Where Tbl_Artista.ArtDescrizione Like '*" & Trim(strTxtRc) & "*'"
strOrderBy = "ORDER BY Tbl_Cd.Artista, Tbl_Cd.Titolo"
Else
strWhere = ""
strOrderBy = ""
End If

e vorrei aggiungere il comando Where Tbl_Artista not like "test*" ma scritto così non funziona MI potreste aiutare?
Grazie
Ciao

lbenaglia Profilo | Guru

>Ciao ho questo codice
>
>If Not IsNull(strTxtRc) Or Trim(strTxtRc) = "" Then
>strWhere = "Where Tbl_Artista.ArtDescrizione Like '*" & Trim(strTxtRc)
>& "*'"
> strOrderBy = "ORDER BY Tbl_Cd.Artista, Tbl_Cd.Titolo"
>Else
> strWhere = ""
> strOrderBy = ""
>End If
>
>e vorrei aggiungere il comando Where Tbl_Artista not like "test*"
>ma scritto così non funziona MI potreste aiutare?

Probabilmente è sbagliata la condizione di test su stringa nulla.
Modifica la riga

If Not IsNull(strTxtRc) Or Trim(strTxtRc) = "" Then
come
If Not IsNull(strTxtRc) Or Trim(strTxtRc) <> "" Then

Ad ogni modo tieni presente che quel codice è molto pericoloso in quanto permette attacchi di tipo SQL Injection:
http://www.dotnethell.it/articles/SQL-Injection-Tutorial-Security.aspx

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Se2 Profilo | Junior Member

Ciao ma non funziona lo stesso. Cioè se scrivo solo
If Not IsNull(strTxtRc) Or Trim(strTxtRc) = "" Then
strWhere = "Where Tbl_Artista.ArtDescrizione Like '*" & Trim(strTxtRc) & "*'"
Else
strWhere = ""
End If
funziona ma io vorrei aggiungere anche la condizione che deve verificare anche la presenza della parola "test" in tbl.Artista.ArtDescrizione
Mi potresti aiutare? Purtroppo io di vba non capisco nulla e qeusto codice l'ho trovato su internet
Grazie ancora

lbenaglia Profilo | Guru

>Ciao ma non funziona lo stesso. Cioè se scrivo solo
>If Not IsNull(strTxtRc) Or Trim(strTxtRc) = "" Then
>strWhere = "Where Tbl_Artista.ArtDescrizione Like '*" & Trim(strTxtRc)
>& "*'"
>Else
> strWhere = ""
>End If
>funziona ma io vorrei aggiungere anche la condizione che deve
>verificare anche la presenza della parola "test" in tbl.Artista.ArtDescrizione
>Mi potresti aiutare?
Come fa una colonna essere valorizzata a "test" e contemporaneramente vai ad eseguire su di essa una LIKE con un pattern potenzialmente differente?

>Grazie ancora
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Se2 Profilo | Junior Member

Oppppsss scusa ho capito cosa vuoi dirmi. Ti consegno l'intero codice
If Not IsNull(strTxtRc) Or Trim(strTxtRc) = "" Then
strWhere = "Where Tbl_Artista.ArtDescrizione Like '*" & Trim(strTxtRc) & "*'"
strOrderBy = "ORDER BY [001_tbl_1].Artista, [001_tbl_1].Titolo"
Else
strWhere = ""
strOrderBy = ""
End If
Me.cmbCd.RowSource = "SELECT [001_tbl_1].IdCd, Tbl_Artista.ArtDescrizione, [001_tbl_1].IdArtista, [001_tbl_1].Artista, [001_tbl_1].Titolo, [001_tbl_1].Numero_cd " & _
"FROM 001_tbl_1 INNER JOIN Tbl_Artista ON [001_tbl_1].IdArtista = Tbl_Artista.IdArtista " & _
strWhere & " " & _
strOrderBy & ";"
A me interesserebbe che venisse effettuata la ricerca solo dei dati nella cui colonna 001_tbl_1.Titolo è presente la parola test
E' possibile?
Grazie 1000

lbenaglia Profilo | Guru

>Posso inserire nel codice sql un comando where in modo che la
>ricerca avvenga esclusivamente nell'elenco dove si trova la parola
>test nella colonna 001_tbl_1.Titolo?

strWhere = "WHERE 001_tbl_1.Titolo LIKE '*test*'"

Sempre che tu stia utilizzando Access. In SQL Server la wildcard corrispondende a "*" è "%".

>Grazie Ciao
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Se2 Profilo | Junior Member

Perdonami ma non riesco a capire dove devo inserire il comando da te suggerito
Ti ripropongo il codice: me lo puoi inserire itu nel posto giusto? Abbi pazienza!

If Not IsNull(strTxtRc) Or Trim(strTxtRc) = "" Then
strWhere = "Where Tbl_Artista.ArtDescrizione Like '*" & Trim(strTxtRc) & "*'"
strOrderBy = "ORDER BY [001_tbl_1].Artista, [001_tbl_1].Titolo"
Else
strWhere = ""
strOrderBy = ""
End If

Me.cmbCd.RowSource = "SELECT [001_tbl_1].IdCd, Tbl_Artista.ArtDescrizione, [001_tbl_1].IdArtista, [001_tbl_1].Artista, [001_tbl_1].Titolo, [001_tbl_1].Numero_cd " & _
"FROM 001_tbl_1 INNER JOIN Tbl_Artista ON [001_tbl_1].IdArtista = Tbl_Artista.IdArtista " & _
strWhere & " " & _
strOrderBy & ";"

USo ACCESS...

lbenaglia Profilo | Guru

>Perdonami ma non riesco a capire dove devo inserire il comando
>da te suggerito
>Ti ripropongo il codice: me lo puoi inserire itu nel posto giusto?
>Abbi pazienza!
>
>If Not IsNull(strTxtRc) Or Trim(strTxtRc) = "" Then
>strWhere = "Where Tbl_Artista.ArtDescrizione Like '*" & Trim(strTxtRc)
>& "*'"
>strOrderBy = "ORDER BY [001_tbl_1].Artista, [001_tbl_1].Titolo"
>Else
> strWhere = ""
> strOrderBy = ""
>End If
>
>Me.cmbCd.RowSource = "SELECT [001_tbl_1].IdCd, Tbl_Artista.ArtDescrizione,
>[001_tbl_1].IdArtista, [001_tbl_1].Artista, [001_tbl_1].Titolo,
>[001_tbl_1].Numero_cd " & _
>"FROM 001_tbl_1 INNER JOIN Tbl_Artista ON [001_tbl_1].IdArtista
>= Tbl_Artista.IdArtista " & _
> strWhere & " " & _
> strOrderBy & ";"
>
>USo ACCESS...
Fammi capire, tu hai una variabile denominata strTxtRc oppure fa parte del codice che hai copiato da Internet?
La condizione di ricerca deve essere parametrica oppure no?

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Se2 Profilo | Junior Member

Ciao si ho una variabile denominata strTxtRc
Avrei bisogno che digitando alcune lettere contenute nella colonna Tbl_Artista.Artdescrizione vengano selezionate solo quelle se nella colonna 001_tbl_1.Titolo è presente la parola "test"
Grazie
Se preferisci ti alelgo il database perchè putrtroppo non conoscendo il linguaggio tecnico non riesco tanto a spiegarmi

lbenaglia Profilo | Guru

>Ciao si ho una variabile denominata strTxtRc
>Avrei bisogno che digitando alcune lettere contenute nella colonna
>Tbl_Artista.Artdescrizione vengano selezionate solo quelle se
>nella colonna 001_tbl_1.Titolo è presente la parola "test"

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Se2 Profilo | Junior Member

If Not IsNull(strTxtRc) Or Trim(strTxtRc) <> "" Then
strWhere = "Where Tbl_Artista.Titolo Like '*" & Trim(strTxtRc) & "*'"
strOrderBy = "ORDER BY [001_tbl_1].Artista, [001_tbl_1].Titolo"
Else
strWhere = ""
strOrderBy = ""
End If

Me.cmbCd.RowSource = "SELECT [001_tbl_1].IdCd, Tbl_Artista.ArtDescrizione, [001_tbl_1].IdArtista, [001_tbl_1].Artista, [001_tbl_1].Titolo, [001_tbl_1].Numero_cd " & _
"FROM 001_tbl_1 INNER JOIN Tbl_Artista ON [001_tbl_1].IdArtista = Tbl_Artista.IdArtista " & _
strWhere & " " & _
strOrderBy & ";"
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5