Newsgroup: it.comp.appl.access
Titolo: istruzione sql in OpenRecordset

Salve a tutti
Cerco di aprire un recordset  con questa espressione
Set rst = db.OpenRecordset("SELECT TOTALI.ID_ENTRATE, TOTALI.ENTRATE.MESE,
TOTALI.RIMANENZA FROM [TOTALI] WHERE ((ID_ENTRATE) = " & utente & ") AND
((ENTRATE.MESE) = " & MESE & "")
Ma mi ritorna questo errore
errore di run-time 3075
),]o mancante nell'espressione della query ((id_entrate)=em1) and
((entrate.mese)=10
non riesco a capire che  virgola o parentesi manchi
se riesco  a risolvere (con il vostro aiuto )in seguito per ricavare il
valore del campo rimanenza  è corretto proseguire in questo modo
supponendo che avanzo sia una variabile
avanzo = rst.Fields("rimanenza").Value
grazie  franio

 ha scritto nel messaggio
news:RpXEb.24724$0w.12...@news2.tin.it...> Set rst =


 Grazie   ceschetti
però adesso mi da
      errore  3061 parametri insufficienti previsto 1
Grazie   per la disponibilità

grazie  franio
Ciao
--
Alberto
No alle guerre

Prova con questa:
Devi scrivere la tua risposta dopo e non prima della parte di testo
cui rispondi.
Non per fare polemica, ma questa piccola regola era scritta nel post
immediatamente precedente a questo.


 ha scritto nel messaggio
news:8m19uvoj88sv812gf...@4ax.com...

ciao alberto
Il recordset che  sto  cercando di  realizzare  deriva da una query  che ha
origine da due tabelle una entrate e una spese nelle quali c'è un campo mese
  credo sia questo il motivo di quel TOTALI.ENTRATE.MESE
Comunque per non correre rischi ho rinominato i campi delle tabelle in
MESE_E - MESE_S
Il problema però è sempre questa benedetta stringa che continua a darmi
errori
Copiando quella che gentilmente mi hai suggerito
Set rst = db.OpenRecordset("SELECT " & _
    "ID_ENTRATE, RIMANENZA, MESE_E " & _
    "FROM TOTALI WHERE " & _
    "ID_ENTRATE = " & utente & _
   "AND MESE_E = " & MESE)
mi da  errore di sintassi operatore mancante
Togliendo le variabili utente  e mese  ed al loro posto scrivo direttamente
il riferimento al controllo della maschera  in questo modo:
Set rst = db.OpenRecordset("SELECT TOTALI.ID_ENTRATE, TOTALI.RIMANENZA,
TOTALI.MESE_E FROM TOTALI WHERE
((TOTALI.ID_ENTRATE)=[Forms]![SPESE]![ID_ENTRATA]) AND
((TOTALI.MESE_E)=[Forms]![SPESE]![MESE]);")
mi dice " paramentri insufficienti previsto 2"
eppure se creo la query in struttura  funziona  e  mi ritorna esattamente il
record
non capisco proprio perché da codice non vuol funzionare
e pensare che poi avevo intenzione di ricavare il valore di rimanenza
testaro  fare un cambio di buget automatico e altre  cosine ma se tanto mi
da tanto credo che continuerò a registrare le spese di casa su un ' agenda
ihhihihihihi
ciao e grazie per l'aiuto

 ha scritto nel messaggio
news:TyfFb.21334$wM.17...@news1.tin.it...

Mi intrometto brevemente, ma ritengo che il consiglio migliore
sia quello di dirti che non è corretto avere un Campo Mese, poichè
è un dato facilmente calcolabile e di conseguenza inutile.
Detto questo però immagino che nel tuo caso tu abbia qualche difficoltà
in quanto hai la struttura già realizzata.
Non credo sia difficile da Normalizzare in quanto in una QRY il campo
Mese da Tabelle sarà sostituito dal campo caloclato
Month(Data) As Mese
In questo modo riduci gli sprechi e anche le ricerche sono meno complesse.
Ciao.
@Alex.

mi da  errore di sintassi operatore mancante
Partendo dalle righe di codice che hai postato la prima volta, io ho
dato per scontato che:
- 'ID_ENTRATE' e 'MESE_E' siano due campi numerici
- nel momento in cui il codice di cui sopra viene eseguito le due
variabili ('utente' e 'mese' - entrambe numeriche) siano tutte e due
valorizzate
Verifica se il tuo contesto corrisponde ... eventualmente inserisci,
prima di valorizzare il recordset, anche una MsgBox per verificare i
valori di 'utente' e 'mese'.
Con i presupposti di cui sopra ho creato una tabella 'TOTALI' e una
maschera con un pulsante di comando, a fronte del quale ho inserito il
seguente codice
---
Private Sub Comando0_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim utente As Long
Dim MESE As Long
    utente = 1
    MESE = 12
'qui valorizzo da codice le due variabili, 
'tu credo prenda i dati da una maschera
'ma il concetto non dovrebbe essere diverso
    Set db = CurrentDb
    Set rst = db.OpenRecordset("SELECT " & _
        "ID_ENTRATE, RIMANENZA, MESE_E " & _
        "FROM TOTALI WHERE " & _
        "ID_ENTRATE = " & utente & _
        "AND MESE_E = " & MESE)
    MsgBox IIf(rst.BOF And rst.EOF, _
        "nessun valore per RIMANENZA", rst!RIMANENZA)
End Sub
---
Che mi funziona correttamente ... 
Dovresti spiegare in cosa la tua situazione è diversa
Aggiungo che il suggerimento di Alessandro è assolutamente giusto
(ovviamente nel caso la variabile 'mese' venga valorizzata al mese
corrente).
Ciao, facci sapere.




forse il problema è proprio  ID_ENTRATE  che è un campo testo anche se
primario e indicizzato ?
ho scelto questa soluzione perchè pensavo ad una chiave che mi desse anche
un riscontro visivo del tipo
EM1    E  (entrate) M (iniziali della persona) 1 (progressivo)
tradotto ..... stipendio moglie prima registrazione .....ehehehehe
quello che mi sembra strano però, è che nel messaggio d'errore le due
variabili compaiono valorizzate correttaente
errore di run-time 3075
errore di sintassi(operatore mancante)nell'espressione della query
'ID_ENTRATE = EM1 AND MESE_E =10
EM1 (id ) e  10(mese)
per il campo mese uso la funzione datepart("M";[data]) sull' evento
attivazione della casella mese della maschera  dove il campo data è la data
di registrazione della spesa
questo per la maschera spese ,per la maschera entrate pensaavo di adottare
la stessa soluzione  l'intento sarebbe di monitorare l'entrate/uscite sia
mensilmente che complessivamente distinte per tipo d'entrata
comunque d'intenti ne avevo tanti  anche se per il momento parlo con il
monitor imprecando contro la guida in linea eheheh
però non mollo l'agenda è ancora nel cassetto
ciao e grazie

ciao e grazie
Ciao
