Newsgroup: it.comp.appl.access
Titolo: errore di sintassi nella proposizione from

ciao come posso correggere questo errore , non sono moltro pratico di codice
(sto lavorando su access)
errore di runtime 3131
errore di sintassi nella proposizione from.
Set rcsPredefiniti = CurrentDb.OpenRecordset("SELECT TabArtPredefiniti.*FROM
TabArtPredefiniti.WHERE (((TabArtPredefiniti.Cliente)=" & Me.idcliente &
"));")
questo e tutto il codice che dovrei mettere invece :
If Not IsNull(DLookup("Cliente", "TabArtPredefiniti", "Cliente=" &
Me.idcliente)) Then
Me.Refresh
Dim rcs As DAO.Recordset, rcsPredefiniti As DAO.Recordset, elenco As Integer
Set rcs = CurrentDb.OpenRecordset("DettagliOrdini")
Set rcsPredefiniti = CurrentDb.OpenRecordset("SELECT TabArtPredefiniti.*FROM
TabArtPredefiniti.WHERE (((TabArtPredefiniti.Cliente)=" & Me.idcliente &
"));")
rcsPredefiniti.MoveLast
rcsPredefiniti.MoveFirst
For elenco = 1 To rcsPredefiniti.RecordCount
With rcs
.AddNew
!Ordine = Me.idordine
!Articolo = rcsPredefiniti!Articolo
.Update
End With
rcsPredefiniti.MoveNext
Next elenco
rcsPredefiniti.Close
Set rcsPredefiniti = Nothing
rcs.Close
Set rcs = Nothing
End If
grazie mille per la disponibilità di Sergio Carlo Karl
Nico

 Nico
A prima vista manca lo spazio dopo l'asterisco.
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 "));")
Ciao nico77,
Access è così bravo da interpretare correttamente l'asterisco appiccicato
alla FROM, però non ammette il punto subito dopo il nome della tabella.
---
SELECT ...... *FROM TabArtPredefiniti. <--Qui c'è il punto di troppo
---
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

adesso mi da questo errore :
errore di sintassi 3075
errore di sintassi (operatore mancante) nell espressione della query  tab
art predefiniti*
Set rcsPredefiniti = CurrentDb.OpenRecordset("SELECT TabArtPredefiniti *
FROM TabArtPredefiniti WHERE (((TabArtPredefiniti.Cliente)=" & Me.idcliente
& "));")
questo e tutto il codice che dovrei mettere invece :
If Not IsNull(DLookup("Cliente", "TabArtPredefiniti", "Cliente=" &
Me.idcliente)) Then
Me.Refresh
Dim rcs As DAO.Recordset, rcsPredefiniti As DAO.Recordset, elenco As Integer
Set rcs = CurrentDb.OpenRecordset("DettagliOrdini")
Set rcsPredefiniti = CurrentDb.OpenRecordset("SELECT TabArtPredefiniti.*FROM
TabArtPredefiniti.WHERE (((TabArtPredefiniti.Cliente)=" & Me.idcliente &
"));")


 & "));")
"SELECT * FROM TabArtPredefiniti WHERE Cliente=" & Me.idcliente
ovviamente me.idcliente e' numerico
[cut]
--
a.cara

 wrote in message
b8sAf.43255$av6....@tornado.fastwebnet.it...


 ciao nico.
per favore rispondi dopo e/o taglia cio che non interessa dal messaggio
Set rcsPredefiniti = CurrentDb.OpenRecordset("SELECT TabArtPredefiniti *
questa e' errata perche si scrive cosi':
Set rcsPredefiniti = CurrentDb.OpenRecordset("SELECT TabArtPredefiniti.*
quello che ti ho scritto sostituiscilo all'interno della openrecordset
l'ho solo ripolito per evitare confusioni inutili
i.e.
Dim sSql as string
sSql =  "SELECT * FROM TabArtPredefiniti WHERE Cliente=" & Me.idcliente
Set rcsPredefiniti = CurrentDb.OpenRecordset(sSql)
il resto mi sembra che possa andare
faresti prima a fare:
.......
Dim sSql as String
sSql = " insert into dettaglioordini (ordine,articolo) select " & 
me.idordine & " as ordine, articolo from TabArtPredefiniti where cliente 
= " & me.idcliente
il resto diventa :
If Not IsNull(DLookup("Cliente", "TabArtPredefiniti", "Cliente=" &
Me.idcliente)) Then
	Me.Refresh
	docmd.runsql sSql
end if
.......
e' tutto.
--
a.cara

ciao Alessandro
alla fine ho optato per il secondo suggerimento.
solo che mi blocca in questo passaggio
docmd.runsql sSql
( e mi dice che l'istruzione sql non è  valida.prevista 'delete ,insert ,
procedure select, o update) errore 3129



si. Ma in ssql cosa ci hai messo?
ssql = " insert into dettaglioordini (ordine,articolo) select " & 
me.idordine & " as ordine, articolo from TabArtPredefiniti where cliente 
= " & me.idcliente
come vedi la "insert" c'e' e va scriita prima della docmd.runsql e tutta 
su una riga
--
a.cara

ciao
si ho messo il codice in questo ordine forse ho sbagliato ?
Private Sub Comando18_Click()
Dim sSql As String
sSql = " insert into dettaglioordini (ordine,articolo) select " &
Me.idordine & " as ordine, articolo from TabArtPredefiniti where cliente" =
" & me.idcliente"
If Not IsNull(DLookup("Cliente", "TabArtPredefiniti", "Cliente=" &
Me.idcliente)) Then
Me.Refresh
DoCmd.RunSQL sSql
End If
End Sub


se e' cosi' dovrebbe andare bene
In questi casi si prende il comando SQL scritto e lo si prova sotto 
l'ambiente query. E' sufficiente un copia incolla del comando SQL. 
Richedera' i parametri me.idcliente e me.idordine gli dai un valore 
numerico qualsiasi. Se la query cosi' fatta viene eseguita significa che 
e' corretta altrimenti, volendo essere lapalissiani, e' sbagliata e 
bisogna correggerla
ahh se e' scritta cosi' c'e' un errore
.....where cliente" = " & me.idcliente"
in
.....where cliente = " & me.idcliente
a me sembrava di averla scritta giusta! Attenzione con il copia e incolla.
--
a.cara

Perfetto grazie funziona , finalmente ci sono riuscito (anzi ci sei riuscito
tu)
solo una cosa io sono in maschera  seleziono il cliente e lui mi accoda le
righe nel dettaglio ordine, solo che non me le fa vedere subito, devo uscire
e rientrare nuovamente e possibile farli visualizzare subito senza uscire??
grazie di nuovo per la disponibilitą e pazienza, non vedo l'ora di imparare
il vb .
ciao

 
comincia ad imparare a stare nel NG. Per favore non  modificare 
l'oggetto (subject) del 3D, metti degli oggetti corretti (che 
tecnicamente indichino quale e' l'argomento) e sopratutto non 
"personalizzare" l'oggetto.
Dal codice togli la me.refresh che non serve a nulla e metti prima della 
end sub (o end function)
me.requery
<F1> Requery
--
a.cara

ora funziona tutto grazie
ciao