Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Nelle ultime settimane abbiamo provato la Corsair Vanguard Air 99 Wireless, una tastiera tecnicamente da gaming, ma che in realtà offre un ampio ventaglio di possibilità anche al di fuori delle sessioni di gioco. Flessibilità e funzionalità sono le parole d'ordine di una periferica che si rivolge a chi cerca un prodotto capace di adattarsi a ogni esigenza e ogni piattaforma
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-01-2009, 20:35   #1
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
[VBA] Query con parametri

Codice:
Set dbs = CurrentDb
Set FidoResiduo = dbs.OpenRecordset("SELECT  DISTINCTROW Sum(TabellaOperazioni.[TOTALE SEND]) AS [TOTALE SEND]," _
& "Sum(TabellaOperazioni.[IMPORTO RECEIVE]) AS [IMPORTO RECEIVE]," _
& "Sum(TabellaOperazioni.[TOTALE QUICK]) AS [TOTALE QUICK], Sum(TabellaOperazioni.BONIFICO) AS BONIFICO," _
& "Sum([TabellaOperazioni].[TOTALE SEND])-NZ(Sum([TabellaOperazioni].[IMPORTO RECEIVE]))-NZ(Sum([TabellaOperazioni].[BONIFICO]))+NZ(Sum([TabellaOperazioni].[TOTALE QUICK])) AS [DA PAGARE]," _
& "Round(DLookUp('[fido settimanale]','[tblFido]')+nz(Sum([TabellaOperazioni].[BONIFICO]))-nz(Sum([TabellaOperazioni].[TOTALE SEND]))+nz(Sum([TabellaOperazioni].[IMPORTO RECEIVE]))-nz(Sum([TabellaOperazioni].[TOTALE QUICK])),2) AS [FIDO RESIDUO]" _
& "FROM TabellaOperazioni WHERE(((TabellaOperazioni.DATA) Between Date() And Date()-5))")
Con questo codice eseguo una query su una tabella filtrando i dati in base alla data che deve essere compresa (between) tra oggi e oggi-5.
Io vorrei sostituire date()-5 con una variabile ma non sò come si fa.
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2009, 01:05   #2
guldo76
Senior Member
 
L'Avatar di guldo76
 
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2598
È access, sì?
Bé, non lo conosco bene, ma da quello che vedo il metodo OpenRecordset prende come argomento una stringa che contiene un'istruzione SQL, giusto?
Puoi comporre l'istruzione come vuoi. Ad esempio:
Codice:
stringaSQL = "select " & nomeCampo & " from tabella"
Set FidoResiduo = dbs.OpenRecordset(stringaSQL)
dove nomeCampo è una variabile di tipo String.

Analogamente per la data.
Però devi fare attenzione al formato della data. Access se non sbaglio accetta le date nel formato seguente:
Codice:
#5/15/2008#
compresi i segni "#", che quindi dovrai mettere tu, eventualmente. Nota che qui la data è nel formato #g/m/aaaa# per cui quello è il 15 maggio.
Fa' qualche tentativo per essere sicuro che la data venga passata correttamente.

Oppure, per non porti neanche il problema, rendi dinamico solo lo scarto (cioè "5" nell'espressione "Date() - 5"), così non devi preoccuparti del formato della data.
guldo76 è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2009, 09:43   #3
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Codice:
Private Sub Comando517_Click()
Dim inizio, fine
Dim Criteri As String

If Weekday(Date) = 1 Then 'Domenica
inizio = Date - 6
End If
If Weekday(Date) = 2 Then 'Lunedi
inizio = Date
End If
If Weekday(Date) = 3 Then 'Martedi
inizio = Date - 1
End If
If Weekday(Date) = 4 Then 'Mercoledi
inizio = Date - 2
End If
If Weekday(Date) = 5 Then 'Giovedi
inizio = Date - 3
End If
If Weekday(Date) = 6 Then 'Venerdi
inizio = Date - 4
End If
If Weekday(Date) = 7 Then 'Sabato
inizio = Date - 5
End If

Criteri = "'(TabellaOperazioni.DATA) between " & Date & " And " & inizio & "'"

Set dbs = CurrentDb
Set FidoResiduo = dbs.OpenRecordset("SELECT  DISTINCTROW Sum(TabellaOperazioni.[TOTALE SEND]) AS [TOTALE SEND]," _
& "Sum(TabellaOperazioni.[IMPORTO RECEIVE]) AS [IMPORTO RECEIVE]," _
& "Sum(TabellaOperazioni.[TOTALE QUICK]) AS [TOTALE QUICK], Sum(TabellaOperazioni.BONIFICO) AS BONIFICO," _
& "Sum([TabellaOperazioni].[TOTALE SEND])-NZ(Sum([TabellaOperazioni].[IMPORTO RECEIVE]))-NZ(Sum([TabellaOperazioni].[BONIFICO]))+NZ(Sum([TabellaOperazioni].[TOTALE QUICK])) AS [DA PAGARE]," _
& "Round(DLookUp('[fido settimanale]','[tblFido]')+nz(Sum([TabellaOperazioni].[BONIFICO]))-nz(Sum([TabellaOperazioni].[TOTALE SEND]))+nz(Sum([TabellaOperazioni].[IMPORTO RECEIVE]))-nz(Sum([TabellaOperazioni].[TOTALE QUICK])),2) AS [FIDO RESIDUO]" _
& "FROM TabellaOperazioni WHERE(((TabellaOperazioni.DATA) Between Date() And Date()-5))")

MsgBox FidoResiduo("FIDO RESIDUO")

End Sub
Sì parliamo di Access, questa routine mi serve per visualizzare il fido residuo della settimana in corso, dal lunedì ad oggi, infatti la prima parte della routine assegna alla variabile "inizio" il valore calcolato togliendo a "date" tanti giorni quanti sono quelli da lunedì ad oggi, perciò io vorrei passare alla SQL la mia variabile.
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2009, 09:53   #4
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da CIUFFO Guarda i messaggi

& "FROM TabellaOperazioni WHERE(((TabellaOperazioni.DATA) Between Date() And Date()-5))")
Riporto solo l'ultima linea del tuo codice.
Così, al volo :

Codice:
& "FROM TabellaOperazioni WHERE(((TabellaOperazioni.DATA) Between Date() And " & CDate(inizio) & "))" )
Se non ho fatto casino con le tonde dovrebbe andare...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2009, 13:49   #5
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Codice:
Function CalcolaFidoResiduo()
Dim Differenza

If Weekday(Date) = 1 Then 'Domenica
Differenza = -6
End If
If Weekday(Date) = 2 Then 'Lunedi
Differenza = -0
End If
If Weekday(Date) = 3 Then 'Martedi
Differenza = -1
End If
If Weekday(Date) = 4 Then 'Mercoledi
Differenza = -2
End If
If Weekday(Date) = 5 Then 'Giovedi
Differenza = -3
End If
If Weekday(Date) = 6 Then 'Venerdi
Differenza = -4
End If
If Weekday(Date) = 7 Then 'Sabato
Differenza = -5
End If

Set dbs = CurrentDb
Set FidoResiduo = dbs.OpenRecordset("SELECT  DISTINCTROW Sum(TabellaOperazioni.[TOTALE SEND]) AS [TOTALE SEND]," _
& "Sum(TabellaOperazioni.[IMPORTO RECEIVE]) AS [IMPORTO RECEIVE]," _
& "Sum(TabellaOperazioni.[TOTALE QUICK]) AS [TOTALE QUICK], Sum(TabellaOperazioni.BONIFICO) AS BONIFICO," _
& "Sum([TabellaOperazioni].[TOTALE SEND])-NZ(Sum([TabellaOperazioni].[IMPORTO RECEIVE]))-NZ(Sum([TabellaOperazioni].[BONIFICO]))+NZ(Sum([TabellaOperazioni].[TOTALE QUICK])) AS [DA PAGARE]," _
& "Round(DLookUp('[fido settimanale]','[tblFido]')+nz(Sum([TabellaOperazioni].[BONIFICO]))-nz(Sum([TabellaOperazioni].[TOTALE SEND]))+nz(Sum([TabellaOperazioni].[IMPORTO RECEIVE]))-nz(Sum([TabellaOperazioni].[TOTALE QUICK])),2) AS [FIDO RESIDUO]" _
& "FROM TabellaOperazioni WHERE (TabellaOperazioni.DATA) between Date() And " & "Date()" & Differenza)

End Function
Ho risolto in questo modo
Grazie mille
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Google sta testando un'app di Gemini per...
NVIDIA GeForce RTX 5070 Laptop: in arriv...
Il Tribunale di Roma ha annullato la mul...
AppleCare One potrebbe arrivare presto i...
Amazon ci riproverà: l'azienda st...
Apple e Samsung dominano la classifica d...
Un game designer di 9 anni, due fogli a ...
Il weekend Amazon parte col botto: gross...
Amazfit Active 2 scende a 69,99€: i migl...
Smart TV No IVA su Amazon: QLED, Mini-LE...
C'è un TV OLED da 65'' a 900€, ma anche ...
Non solo smartphone: OnePlus sta per lan...
DJI Mavic 4 Pro in super offerta su Amaz...
ASUS Zenbook scende di altri 50€: l'anti...
Un militare francese ha svelato su Strav...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v