Newsgroup: it.comp.lang.visual-basic
Titolo: SQL e variabili

Ciao a tutto il NG!
Sono un neofita di VB6.0 e puntualmente, come ogni neofita, mi trovo subito
in difficoltà.
Creando una connessione ad un database MDB e creando il relativo recordset,
sono subito incappato sulla sintassi del SQL language.
Esempio:
Dim dbMioDatabase As Database
Dim rsMioRecordset As Recordset
Set dbMioDatabase = Workspaces(0).OpenDatabase _
(c:\percorso\magazzino.mdb)
Set rsMioRecordset = dbMioDatabase.OpenRecordset _
("SELECT * FROM prezzi_articoli WHERE articolo > 12000")
Si evince che ho creato il mio rsMioRecordset utilizzando una select,
grazie al linguaggio SQL.
Nell'esempio però ho fatto uso direttamente del nome del campo ARTICOLO,
contenuto nella tabella PREZZI_ARTICOLI e ho fatto uso direttamente del nome
della tabella  stessa.
Domanda:
come posso inserire il nome della tabella e poi del campo, tramite  semplice
VARIABILE?
Tipo:
Set rsMioRecordset = dbMioDatabase.OpenRecordset _
("SELECT * FROM varNomeTabella WHERE varNomeCampo > 1200")
Non ditemi di cercare spiegazioni nell'help di vb6 perchè non v'è ne sono!
Nel'MSDN idem con patate.
Mi sembra di capire già da adesso, che la sintassi di questo SQL è un poco
contorta ( per il mio povero brain).
Grazie di cuore a chi avrà la cortesia di rispondere!
Waller the Net Roller 8-]

Trovi un esempio di come utilizzare una select con variabili, nella domanda
da me posta nel NG con intestazione:
SQL con PARAMETER genera errore.
Ciao
Roberto


Nella sua forma più semplice la sintassi dell'istruzione OpenRecordset è:
set MyRecordset = MyDatabase.OpenRecordset(stringaSQL)
Affinchè funzioni è quindi necessario passare come parametro una stringa SQL
valida. La stringa può anche essere una concatenazione di stringhe. Nel tuo
esempio:
varNomeTabella = "prezzi_articolo"
varNomeCampo = "articolo"
stringaSQL = "SELECT * FROM " & varNomeTabella & " WHERE " & varNomeCampo &
" > 1200"
set rsMioRecordset = dbMioDatabase.OpenRecordset(stringaSQL)
Ciao Bruno

ti mando uno stralcio di codice.....
Sono eventualmente a disposizione per chiarimenti.
ciao Tommy  ^__^
*(stralcio di codice)*
 Dim a, b, c, d, e, f, g, h, criterio As String
 'qui mi compilo le varibili
 If txtNP.Text <> "" Then
  a = "[ID] = " & txtNP.Text & " AND"
 End If
 If txtNRP.Text <> "" Then
  b = "[NUMERORISC] = '" & txtNRP.Text & " AND"
 End If
 If txtASS.Text <> "" Then
  c = "[ASSICURATO] = '" & DuplicaApici(txtASS.Text) & "' AND"
 End If
 If txtCTP.Text <> "" Then
  d = "[CONTROPARTE] = '" & DuplicaApici(txtCTP.Text) & "' AND"
 End If
 If txtNS.Text <> "" Then
  e = "[NUMSINISTRO] = '" & DuplicaApici(txtNS.Text) & "' AND"
 End If
 If txtDS.Text <> "" Then
  f = "[DATASINISTRO] = " & DataPerSQL(txtDS.Text) & " AND"
 End If
 If txtNPOL.Text <> "" Then
  g = "[NUMPOLIZZA] = '" & DuplicaApici(txtNPOL.Text) & "' AND"
 End If
 If txtTAV.Text <> "" Then
  h = "[TARGA] = '" & DuplicaApici(txtTAV.Text) & "' AND"
 End If
 ' scrivo la condizioni di WHERE
 criterio = a & b & c & d & e & f & g & h
 ' tolgo via l'ultimo "AND" che farebbe danni ^_^
 If "AND" = Right(criterio, 3) Then
  criterio = Left(criterio, Len(criterio) - 4)
 End If
If criterio <> "" Then
 QueryCerca = "SELECT * FROM Tabella1 WHERE " & criterio & ";"
Else
 MsgBox "Attenzione! Non hai immesso alcun criterio di ricerca!",
vbExclamation
 Exit Sub
End If
Exit Sub

Ringrazio vivamente Voi tutti per i molteplici aiuti che mi son giunti.
Grazie a Voi di questo FANTASTISCO NG.  ^_^
Quanto è essenziale comunicare!!!