Newsgroup: it.comp.appl.access
Titolo: Alias (concatenazione)  su query select in routine vba

Buonasera.
Ho creato e salvato una query con un alias che concatena tre campi 
separandoli con la /, da visualizzazione sql:
  [NomeOper] & "/" & [TipoPrestazione] & "/" & [CognPaz] AS OperPrestPaz
ora per creare la stringa sql che poi voglio usare per aprire un 
recordset DAO ho provato cosï¿œ:
NomeOper" & " &" & "/" & "& " & "TipoPrestazione" & " &" & "/" & "& " & 
"CognPaz AS OperPrestPaz"
ma nel debug.print vedo che esce
NomeOper &/& TipoPrestazione &/& CognPaz AS OperPrestPaz
infatti errore 3075 errore di sintassi operatore mancante
in precedenza avevo tentato in altro modo che mi dava errore mi
sembra 13 giï¿œ nella assegnazione della stringa alla variabile string
Temo di avere delle lacune nella gestione di apici, doppi ecc :-(
Grazie a chi mi potrï¿œ dare dei suggerimenti su come costruire questa
stringa
Saluti
Pietro66

"Pietro66"  ha scritto nel messaggio 
news:4e932e52$0$1374$4faf...@reader1.news.tin.it...









_______Risposta:
la stringa in VBA ï¿œ uguale a quella della query
"SELECT   " & [NomeOper] & "/" & [TipoPrestazione] & "/" & [CognPaz] & " AS 
OperPrestPaz FROM tuatabella"
MA

 "CognPaz AS OperPrestPaz"
"... NomeOper & '/' & TipoPrestazione & '/' & ... "
Bruno


Ringrazio Bruno e MA, col loro suggerimento ho superato quel punto,
ora emerge un errore diverso
3131 errore di sintassi nella clausola FROM
forse dovrei aprire un altro thread?
comunque questa � la stringa completa
"SELECT t_Slots.StartSlot, t_Slots.EndSlot, t_Prestazioni.DtPrest," & _
"NomeOper & '/' & TipoPrestazione & '/' & CognPaz AS OperPrestPaz, 
t_Slots.IdSlot" & _
" FROM t_TipiPrestazione INNER JOIN t_Slots INNER JOIN t_Pazienti INNER 
JOIN t_Operatori" & _
" INNER JOIN t_Prestazioni ON t_Operatori.IdOperatore = 
t_Prestazioni.Operatore" & _
" ON t_Pazienti.IdPaz = t_Prestazioni.Paziente ON t_Slots.IdSlot = 
t_Prestazioni.Slot" & _
" ON t_TipiPrestazione.IdTipoPrestazione = t_Prestazioni.TipoPrest" & _
          " WHERE t_Prestazioni.DtPrest Between" & _
          "#" & Format(DataDa, "mm/dd/yyyy") & "#" & _
          " AND #" & Format(DataAl, "mm/dd/yyyy") & "#" & _
          " ORDER BY t_Prestazioni.DtPrest, t_Slots.IdSlot"
Saluti

 ...
Non puoi scrivere una seria di JOIN e dopo la seria di ON.
Invece dopo ogni JOIN deve seguire la relativa parte ON.
Inoltre mancano delle parentesi.
Perch� non crea la query come query normale con Access
e poi studia il risultato nella vis. SQL della query o fai
copia/incolla al codice?
Cos� vedi la sintassi giusta per la clausola FROM.
-- 
Ciao
Karl
*********
Access FAQ: 
http://www.donkarl.com/it


questo ï¿œ il codice SQL della query salvata, riconosco la mia ignoranza 
su sql ma i join li mette cosï¿œ e la query restituisce i record:
SELECT t_Slots.StartSlot, t_Slots.EndSlot, t_Prestazioni.DtPrest, 
[NomeOper] & "/" & [TipoPrestazione] & "/" & [CognPaz] AS OperPrestPaz, 
t_Slots.IdSlot
FROM t_TipiPrestazione INNER JOIN (t_Slots INNER JOIN (t_Pazienti INNER 
JOIN (t_Operatori INNER JOIN t_Prestazioni ON t_Operatori.IdOperatore = 
t_Prestazioni.Operatore) ON t_Pazienti.IdPaz = t_Prestazioni.Paziente) 
ON t_Slots.IdSlot = t_Prestazioni.Slot) ON 
t_TipiPrestazione.IdTipoPrestazione = t_Prestazioni.TipoPrest
WHERE (((t_Prestazioni.DtPrest) Between #10/10/2011# And #10/14/2011#))
ORDER BY t_Prestazioni.DtPrest, t_Slots.IdSlot;

>
cut
perfetto, messe le parentesi, funziona
grazie infinite Karl
Pietro



 t_Prestazioni.TipoPrest
La sequenza di JOIN e ON � un po' strana, ma se funziona cos�
nella query devi solo aggiungere tutte le 6 parentesi anche al
tuo codice.
