Condividi tramite

Formattare data da codice vba

Anonimo
2016-03-08T16:49:11+00:00

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

Microsoft 365 e Office | Accesso | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2016-03-08T17:19:07+00:00

    ciao Pierluigi,

    prova a formattare la data, qui

    StSq3 = StSq3 & "#" & varDat & "# AS XDat, "

     in questo modo :

    Format$(tuaData,"mm/dd/yyyy") 

    StSq3 = StSq3 & "#" & Format$(varDat ,"mm/dd/yyyy") & "# AS XDat, "

    oppure in questo modo

     CLng(tuaData)

    StSq3 = StSq3 &  CLng(varDat )  & " AS XDat, "

    nel primo caso mantieni gli # nel secondo no perché passi un long.

    ciao, Sandro.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-03-08T17:46:29+00:00

    Ciao, Sandro

    Funziona, è ok.

    Ciao, mille grazie.

    Pierluigi

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2016-03-08T18:54:28+00:00

    Ciao Pierluigi,

    se la risposta ha risolto il problema, contrassegnala come risposta, in questo modo aiuti altri utenti nella ricerca di soluzioni analoghe.

    Grazie

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento