Newsgroup: it.comp.www.asp
Titolo: [DB] Access97 e CampoMEMO

Ho un problema con un db access 97. Per sviluppare a casa uso access2000,
mentre sul server é montato access97.
Access 97 non mi consente di selezionare i campi memo usando DISTINCT mentre
a2000 si.
ho provato sia con distinct che con group by ma il risultato é lo stesso.
come posso fare???
mi spiego meglio: ho 2 tabelle, una x delle pubblicazioni e una che associa
ad ogni pubbl un elenco di persone che vi hanno parteciapto (IDpubbl,
IDpers).
devo mostrare un campo memo della tabella pubblicazioni (che identifica la
pubblicazione) facendo anche la ricerca sulla persona... quindi devo per
forza fare il join tra le 2 tabelle.
questo é il pezzo di codice che crea la stringa sql:
StrSQL= _
 "SELECT Pubblicazioni.ID,Pubblicazioni.NotePUB " & _
 "FROM Personale INNER JOIN " & _
  "(Pubblicazioni INNER JOIN PersPubb ON Pubblicazioni.ID = PersPubb.idPubb)
" & _
  "ON Personale.ID = PersPubb.idPers " & _
 "GROUP BY Pubblicazioni.ID, Pubblicazioni.NotePUB, Pubblicazioni.TitoloP, "
& _
  "Pubblicazioni.TitoloR,Pubblicazioni.Anno "
if idP<>"" Then
 StrSQL= StrSQL & _
  ",PersPubb.idPers "
end if
 StrSQL= StrSQL & _
  "HAVING (((TitoloP) LIKE '%" & Tit & "%') "
if idP<>"" then
 StrSQL= StrSQL & _
  "AND ((idPers)=" & idP & ") "
 StrOUT= "<TABLE width=""760"" border=""1"" cellpadding=""3"">" & _
   "<TR><TH Align=""Right"" width=""30%"">Elenco Pubblicazioni di:</th>" & _
    "<TD Align=""Left"">&nbsp" & _
     USR(idP,"Tit") & "&nbsp<B>" & _
     USR(idP,"Cgm") & "</B> " & _
     USR(idP,"Nm") & _
    "</TD></TR></TABLE><BR>"
 Response.Write(StrOUT)
end if
if Riv<>"" then
 StrSQL= StrSQL & _
 "AND ((TitoloR)='" & Riv & "') "
end if
if Anno<>"" then
 StrSQL= StrSQL & _
 "AND ((Anno)=" & Anno & ") "
end if
StrSQL= StrSQL & _
 ") " & _
 "ORDER BY TitoloP"
che mi restituisce:
SELECT Pubblicazioni.ID,Pubblicazioni.NotePUB FROM Personale INNER JOIN
(Pubblicazioni INNER JOIN PersPubb ON Pubblicazioni.ID = PersPubb.idPubb) ON
Personale.ID = PersPubb.idPers GROUP BY Pubblicazioni.ID,
Pubblicazioni.NotePUB, Pubblicazioni.TitoloP,
Pubblicazioni.TitoloR,Pubblicazioni.Anno ,PersPubb.idPers HAVING (((TitoloP)
LIKE '%aa%') AND ((idPers)=25) AND ((TitoloR)='aaa556') AND ((Anno)=1999) )
ORDER BY TitoloP
in locale funziona, ma sul server ottengo:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Can't group on Memo or OLE
Object (Pubblicazioni.NotePUB).
come posso fare?
(tenete presente che non posso semplicemente eliminare NotePUB dalla
clausola Group BY altrimenti otterrei un errore differente)
Grazie a tutti x l'attenzione

Risolto con query annidate...
StrSQL= _
 "SELECT Pubblicazioni.ID, Pubblicazioni.NotePUB " & _
 "FROM Pubblicazioni " & _
 "WHERE (((Pubblicazioni.ID) In (" & _
 "SELECT Pubblicazioni.ID " & _
 "FROM Personale INNER JOIN " & _
  "(Pubblicazioni INNER JOIN PersPubb ON Pubblicazioni.ID = PersPubb.idPubb)
" & _
  "ON Personale.ID = PersPubb.idPers " & _
  "WHERE (((TitoloP) LIKE '%" & Tit & "%') "
if idP<>"" then
 StrSQL= StrSQL & _
  "AND ((idPers)=" & idP & ") "
 StrOUT= "<TABLE width=""760"" border=""1"" cellpadding=""3"">" & _
   "<TR><TH Align=""Right"" width=""30%"">Elenco Pubblicazioni di:</th>" & _
    "<TD Align=""Left"">&nbsp" & _
     USR(idP,"Tit") & "&nbsp<B>" & _
     USR(idP,"Cgm") & "</B> " & _
     USR(idP,"Nm") & _
    "</TD></TR></TABLE><BR>"
 Response.Write(StrOUT)
end if
if Riv<>"" then
 StrSQL= StrSQL & _
 "AND ((TitoloR)='" & Riv & "') "
end if
if Anno<>"" then
 StrSQL= StrSQL & _
 "AND ((Anno)=" & Anno & ") "
end if
StrSQL= StrSQL & _
 ") " & _
  "))) " & _
 "ORDER BY TitoloP"