Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Problema con codice query e maschera - ACCESS SQL
venerdì 21 dicembre 2012 - 11.35
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
Windows XP
|
Access (.mdb)
POM
Profilo
| Newbie
13
messaggi | Data Invio:
ven 21 dic 2012 - 11.35
Ciao di nuovo a tutti!!
Sto avendo un problemino con una maschera.. io ho una casella di testo, essa deve contenere il TotaleDare, nel caso in cui esso corrisponda alla chiave "Li".. frutto di una query.
In pratica è come se stessi facendo una sottoquery.
Il codice, però, ahimè non funziona!!
SELECT [TotaleDARE]
FROM [somme_riclassificazione_stato_patrimoniale]
WHERE [COD_RICLASSIFICAZIONE]="Li";
Dov'è che sbaglio? Non riesco a capire.. :(
Se faccio la modalità guidata per la creazione del codice (quindi da origine controllo) mi da un'alta sintassi.. che ugualmente non funziona!!
Mi date una mano?
Attendo risposte.
Grazie!!
Mary. Classe 1993.
Windows Xp user.
Futura ragioniera e programmatrice.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 21 dic 2012 - 11.42
>Ciao di nuovo a tutti!!
Ciao Mary
>Dov'è che sbaglio? Non riesco a capire.. :(
>Se faccio la modalità guidata per la creazione del codice (quindi
>da origine controllo) mi da un'alta sintassi.. che ugualmente
>non funziona!!
>Mi date una mano?
so che sei all'inizio su questo forum e di solito diamo più margine, però, devo partire con un paio di annotazioni sulle "regole" da seguire il più possibile:
- cerca di dettagliare al massimo il post per darci la possibilità di capire al meglio il problema, non dare mai per scontato niente
- allega anche dei file o il codice incriminato, sempre per lo stesso scopo, risponderti al meglio
- cerca di documentarti sempre prima di postare, per essere certa che la problematica non è gestibile con i metodi della documentazione (o se non riesci a capire qualcosa della doc)
detto questo,
iniziamo, cerca di dettagliare maggiormente e allega un database di esempio che possa aiutarci a rispondere.
grazie mille a te
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
POM
Profilo
| Newbie
13
messaggi | Data Invio:
ven 21 dic 2012 - 11.51
D'accordo ;) allora.. ho creato questa query, che mostra questi risultati:
383x235
31Kb
Adesso.. ho questa maschera:
636x482
45Kb
Nella casella di testo accanto a "Liquidità immediate" vorrei inserire l'importo contenuto nella query allegata.. le Liquidità immediate in quella immagine hanno il codice Li.. e quindi devo creare l'sql che mi permetta di selezionare dei valori con un criterio da una query.
Spero di essere stata limpida :D
Grazie!!
Mary. Classe 1993.
Windows Xp user.
Futura ragioniera e programmatrice.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 21 dic 2012 - 12.39
>Spero di essere stata limpida :D
Ok il problema è chiaro, ma che codice hai associato al pulsante o all'evento che dovrebbe essere scatenato per riempire i campi di testo?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
POM
Profilo
| Newbie
13
messaggi | Data Invio:
ven 21 dic 2012 - 18.18
Quello che ho postato sopra!
SELECT [TotaleDARE]
FROM [somme_riclassificazione_stato_patrimoniale]
WHERE [COD_RICLASSIFICAZIONE]="Li";
L'ho inserito nell'origine controllo della casella di testo, ma mi hai fatto venire un'idea.. se volessi mettere il codice interamente sul pulsante, cosa dovrei scrivere?
--------
Mary. Classe 1993.
Windows Xp and Sony Xperia Sola user.
Futura ragioniera e programmatrice.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 21 dic 2012 - 23.40
>Quello che ho postato sopra!
ok, non capivo che quella query fosse l'origine della maschera
Vedendo il pulsante credevo che tu volessi collegarla all'evento di pressione del pulsante stesso.
>ma mi hai fatto venire un'idea.. se volessi mettere il codice
>interamente sul pulsante, cosa dovrei scrivere?
appunto, se vai in visualizzazione struttura della maschera e selezioni il pulsante, vedrai, negli strumenti del bottone, l'elenco degli eventi. Se fai doppio click sull'evento che vuoi gestire (il click ad esempio) ti si apre l'editor VBA, ma dovrai scrivere del codice Visual Basic.
Qui c'è la documentazione di office:
http://office.microsoft.com/en-us/access-help/use-a-command-button-to-start-an-action-or-a-series-of-actions-HA010117258.aspx
Conosci un po' di VBA?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
POM
Profilo
| Newbie
13
messaggi | Data Invio:
lun 24 dic 2012 - 14.33
Conosco più che bene visual basic, ma non so se su access è uguale..
La questione a questo punto è un'altra:
Devo fare la query con il codice oppure utilizzo quella che già ho e la uso con il vb?
Alla fine non penso sia difficile, se scrivessi nel codice il ciclo per ricercare ad esempio il valore "Li" nella query.. riuscirei poi a metterla nella casella di testo corrispondente.. giusto?
Mi aiuteresti a fare una bozza di codice? La devo adottare per 6 maschere e parecchie query.. :/
A quel punto avendolo non resta altro che rielaborarlo per ogni caso specifico!
Grazie e Buona Vigilia ;)
--------
Mary. Classe 1993.
Windows Xp and Sony Xperia Sola user.
Futura ragioniera e programmatrice.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 24 dic 2012 - 14.41
>Conosco più che bene visual basic, ma non so se su access è uguale..
il VBA è un pochino diverso, ma è sempre VB.
>La questione a questo punto è un'altra:
>Devo fare la query con il codice oppure utilizzo quella che già
>ho e la uso con il vb?
se vuoi associare al pulsante, ti consiglio di utilizzare quella query sul gestore dell'evento del click del pulsante.
>Alla fine non penso sia difficile, se scrivessi nel codice il
>ciclo per ricercare ad esempio il valore "Li" nella query.. riuscirei
>poi a metterla nella casella di testo corrispondente.. giusto?
devi ciclare se hai più righe il resultset, ma puoi fare anche altre cose, come tante query posizionali, ecc..
dipende dalla soluzione che attui.
>Mi aiuteresti a fare una bozza di codice? La devo adottare per
>6 maschere e parecchie query.. :/
>A quel punto avendolo non resta altro che rielaborarlo per ogni
>caso specifico!
per cercare di aiutarti il più possibile, passami un db di prova con dati di esempio così ti scrivo il vb che utilizzerei.
Tanto si tratta di popolare i dati di una maschera alla load e in più di aggiornarla con la pressione di un pulsante no?
>Grazie e Buona Vigilia ;)
Auguri anche a te!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
POM
Profilo
| Newbie
13
messaggi | Data Invio:
lun 24 dic 2012 - 14.58
1799_db1.zip
In allegato ti ho messo il file.. è ancora provvisorio, ovviamente.. presto aggiungerò molti più campi per le altre operazioni.
In ogni caso.. nella sezione maschere trovi quella di cui stiamo parlando, ho scritto il codice che ho trovato in giro su internet, rielaborandolo.. ma niente, non mi da errore ma non compare il dato sul campo.
Mi dai una mano?
Grazie, sei disponibilissimo ^^
--------
Mary. Classe 1993.
Windows Xp and Sony Xperia Sola user.
Futura ragioniera e programmatrice.
renarig
Profilo
| Expert
517
messaggi | Data Invio:
mer 26 dic 2012 - 18.44
1802_Demox.zip
Secondo me ci sono diversi problemi che si accavallano.
_________________________________________________________________
Hai usato nelle tabelle delle caselle combinate che di per se stesso
non è sbagliato ma semplicemente inutile
e confonde le idee in quanto i dati che leggi non corrispondono
ai dati effettivamente memorizzati nel DB
___________________
Per conseguenza anche nelle query ti sono venute le caselle combinate
Tu leggi "Li" e vuoi filtrarlo.
ma quel "Li" nella casella combinata fa riferinento al
valore numerico del suo Id che è 7
Pertanto devi filtrare sul 7 NON sul "Li"
_________________________________________________________________
Altro problema, quel codice che hai messo
> Option Compare Database
> Dim i As Byte
>
> Private Sub Comando4_Click()
> For i = 1 To 8
> If DLookup("COD_RICLASSIFICAZIONE", "somme_riclassificazione_stato_patrimoniale") = "Li" Then
> txtLi.Text = Val([TotaleDARE])
> End If
> Next i
> End Sub
cosa dovrebbe fare ( a parte il problema del "Li" evidenziato sopra )
Scorrere gli 8 record della query per trovare il valore desiderato
e scriverlo nella casella di testo txtLi ???
Ma lui resta sempre fermo al 1° record perche non
hai messo un MoveNext per andare al prossimo record
In verità ancor prima del MoveNext dovevi aprire
un RecordSet .....
Quindi il codice per 8 volte controlla che al 1° record
ci sia scritto "Li" Non lo trova
e non scrive nulla nel tuo txtLi.
____________________________________________________________
Poi hai un problema più strutturale:
Tu vorresti filtrare sul valore "Li"
ma perche non filtri sul valore 7 che è la sua chiave ????
Guardati bene come hai impostato le tabelle e le relazioni
Funziona anche se filtri si "Li" ma .....
____________________________________________________________
____________________________________________________________
____________________________________________________________
Adesso che ti ho detto dei problemi vediamo come puoi risolvere:
ci sono 3 modi in ordine di difficolta:
__ 1° ________________________________________
Un banale DLookUp direttamente nella maschera e non usi codice
__ 2° ________________________________________
Apri un RecorSet sulla Query salvata e gli fai scorrere TUTTI i record
usando MoveNext alla ricerca del valore 7 ( che corrisponde a "Li" )
__ 3° ________________________________________
Come il 2° ma la query non è salvata bensi scritta
con VBA
________________________________________________________________
________________________________________________________________
________________________________________________________________
Visto che oggi è festa ti allego 3 esempi distinti
sono stati prodotti con access2010 poi salvati in 2003
percio potresti avere dei problemi
Facci sapere
.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 27 dic 2012 - 10.10
>Visto che oggi è festa ti allego 3 esempi distinti
visto che era festa non ho risposto
grazie renarig
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
POM
Profilo
| Newbie
13
messaggi | Data Invio:
ven 28 dic 2012 - 15.27
Grazie tante!!!! Il numero 1 è stato sufficiente :)
--------
Mary. Classe 1993.
Windows Xp and Sony Xperia Sola user.
Futura ragioniera e programmatrice.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !