Salve.
Eccomi di nuovo a chiedere il vostro aiuto.
Ho una maschera che mi serve per movimentare vari articoli, e una query dove memorizzo i movimenti.
Nella maschera ho una casella di testo (txtDatax) che mi da la data attuale e ora,
quando faccio il movimento, la query mi inverte la data (in data americana);
Es: se faccio il movimento in data 08/03/2016 (03 marzo 2016) nella query dei movimenti mi ritrovo 03/08/2016 (03 agosto 2016).
Penso sia un problema di formattazione nel codice della maschera.
Questo è il codice maschera:
Option Compare Database
Option Explicit
Private Sub Form_Load()
MsgBox "ATTENZIONE !!!! COMPILARE DA 1 A 5 SEGUENDO LE ETICHETTE ROSSE "
End Sub
Private Sub cmdReset_Click()
DoCmd.Close acForm, "MasComplessa"
End Sub
Private Sub cmbArt_AfterUpdate()
' Aggiorno la Casella combinata Armadi con le quantita dell'articolo scelto
Dim varArt As String
varArt = Nz(Me!cmbArt.Value, "")
Dim StSq1 As String
StSq1 = ""
StSq1 = StSq1 & "SELECT "
StSq1 = StSq1 & "Movimenti.CodSede, "
StSq1 = StSq1 & "Sum(Movimenti.Quantita) As TotArm "
StSq1 = StSq1 & "FROM "
StSq1 = StSq1 & "Movimenti "
StSq1 = StSq1 & "GROUP BY "
StSq1 = StSq1 & "Movimenti.CodSede, "
StSq1 = StSq1 & "Movimenti.CodArticolo "
StSq1 = StSq1 & "HAVING "
StSq1 = StSq1 & "((Movimenti.CodArticolo)='" & varArt & "')"
StSq1 = StSq1 & "AND Sum(Movimenti.Quantita) > 0"
StSq1 = StSq1 & "AND Movimenti.CodSede <> 'FUORI USO'"
StSq1 = StSq1 & ";"
Me!cmbArPre.RowSource = StSq1
Me!FilArm.Visible = True
Call AggCon
End Sub
Private Sub cmbArPre_AfterUpdate()
' Aggiorno la casella combimata Articoli in funzione dell'armadio scelto
Dim varArm As String
varArm = Nz(Me!cmbArPre.Value, "")
Dim StSq2 As String
StSq2 = ""
StSq2 = StSq2 & "SELECT "
StSq2 = StSq2 & "Articoli.DescrizioneArticolo, "
StSq2 = StSq2 & "Movimenti.CodArticolo, "
StSq2 = StSq2 & "Articoli.Note, "
StSq2 = StSq2 & "Sum(Movimenti.Quantita) As TotQu "
StSq2 = StSq2 & "FROM "
StSq2 = StSq2 & "Articoli "
StSq2 = StSq2 & "INNER JOIN "
StSq2 = StSq2 & "Movimenti "
StSq2 = StSq2 & "ON "
StSq2 = StSq2 & "Articoli.CodArticolo = Movimenti.CodArticolo "
StSq2 = StSq2 & "GROUP BY "
StSq2 = StSq2 & "Articoli.DescrizioneArticolo, "
StSq2 = StSq2 & "Movimenti.CodArticolo, "
StSq2 = StSq2 & "Articoli.Note, "
StSq2 = StSq2 & "HAVING "
StSq2 = StSq2 & "((Movimenti.CodSede)='" & varArm & "')"
StSq2 = StSq2 & "AND Sum(Movimenti.Quantita) > 0"
StSq2 = StSq2 & "AND Movimenti.CodSede <> 'FUORI USO'"
StSq2 = StSq2 & ";"
Me!cmbArt.RowSource = StSq2
Me!FilArt.Visible = True
Call AggCon
End Sub
Private Sub AggCon()
' aggiorna i controlli di maschera
Dim varArt As String
varArt = Nz(Me!cmbArt.Value, "")
Dim varArm As String
varArm = Nz(Me!cmbArPre.Value, "")
Me.txtQTra.Enabled = True
Me.txtQDis.Value = DSum("Movimenti.Quantita", "Movimenti", "((codArticolo='" & varArt & "') AND (CodSede='" & varArm & "'))")
End Sub
Private Sub txtQTra_DblClick(Cancel As Integer)
Me.txtQTra.Value = Me.txtQDis.Value
Call txtQTra_AfterUpdate
End Sub
Private Sub txtQTra_AfterUpdate()
If Me.txtQTra.Value > Me.txtQDis.Value Then
Dim str As String
str = ""
str = str & "Vuoi trasferire una quantita" & vbNewLine
str = str & "superiore al disponibile" & vbNewLine & vbNewLine
str = str & "La operazione è consentita" & vbNewLine
str = str & "avrai come risultato delle" & vbNewLine
str = str & "giacenze negative" & vbNewLine & vbNewLine
str = str & " Vuoi proseguire ???" & vbNewLine
Dim msgxx As Integer
msgxx = MsgBox(str, vbInformation + vbYesNo + vbDefaultButton2)
If msgxx = 7 Then ' si = 6 / No = 7
Me.txtQTra.Value = ""
'DoCmd.GoToControl ("TxtQTra")
Me.cmbArDes.Enabled = True
Exit Sub
End If
End If
End Sub
Private Sub cmbArDes_AfterUpdate()
Me.cmdExecute.Enabled = True
Me.cmdExecute.Caption = "Trasferisci"
End Sub
Private Sub cmdExecute_Click()
Dim varDat As Date ' La data
varDat = Me.txtDatx.Value
Dim varArt As String ' Atricolo
varArt = Me.cmbArt.Value
Dim varQua As Integer
varQua = Me.txtQTra.Value
Dim varAPr As String ' Armadio di prelievo
varAPr = Me.cmbArPre.Value
Dim varADe As String ' Armadio di Destinazione
varADe = Me.cmbArDes.Value
Dim varNot As String
varNot = Nz(Me.txtNote.Value, "")
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Faccio il carico nell'armadio scelto
Dim StSq3 As String
StSq3 = ""
StSq3 = StSq3 & "INSERT INTO "
StSq3 = StSq3 & "Movimenti "
StSq3 = StSq3 & "( "
StSq3 = StSq3 & "DataMov, "
StSq3 = StSq3 & "CodArticolo, "
StSq3 = StSq3 & "Quantita, "
StSq3 = StSq3 & "CodSede, "
StSq3 = StSq3 & "Notex "
StSq3 = StSq3 & ") "
StSq3 = StSq3 & "SELECT "
StSq3 = StSq3 & "#" & varDat & "# AS XDat, "
StSq3 = StSq3 & "'" & varArt & "' AS XArt, "
StSq3 = StSq3 & varQua & " AS XQua, "
StSq3 = StSq3 & "'" & varADe & "' AS XArm, "
StSq3 = StSq3 & "'" & varNot & "' AS XNot"
StSq3 = StSq3 & ";"
DBEngine(0)(0).Execute (StSq3)
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Faccio lo scarico nell'armadio scelto
StSq3 = ""
StSq3 = StSq3 & "INSERT INTO "
StSq3 = StSq3 & "Movimenti "
StSq3 = StSq3 & "( "
StSq3 = StSq3 & "DataMov, "
StSq3 = StSq3 & "CodArticolo, "
StSq3 = StSq3 & "Quantita, "
StSq3 = StSq3 & "CodSede, "
StSq3 = StSq3 & "Notex "
StSq3 = StSq3 & ") "
StSq3 = StSq3 & "SELECT "
StSq3 = StSq3 & "#" & varDat & "# AS XDat, "
StSq3 = StSq3 & "'" & varArt & "' AS XArt, "
StSq3 = StSq3 & (varQua * -1) & " AS XQua, "
StSq3 = StSq3 & "'" & varAPr & "' AS XArm, "
StSq3 = StSq3 & "'" & varNot & "' AS XNot"
StSq3 = StSq3 & ";"
DBEngine(0)(0).Execute (StSq3)
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MsgBox " OK! MOVIMENTO ESEGUITO! "
Call cmdReset_Click
End Sub
Ciao.
Grazie
Pierluigi