Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
ciao Ciro,
[...]
Cosa ne pensi?
[...]
mi pare che le osservazioni ci stiano tutte, prova questa soluzione, per il terzo barcode non ho implementato nulla...in caso lascio a te la palla... :-)....vedi intanto se ci siamo :
Option Compare Database
Option Explicit
Private Const strStart As String = "start"
Private Const strStop As String = "stop"
Private boolT As Boolean
Private boolF As Boolean
Private boolStop As Boolean
Private Const strMessSTA As String = "hai selezionato due volte start, seleziona stop"
Private Const strMessSTo As String = "hai selezionato due volte stop, seleziona start"
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long)
#End If
Private Sub BARCODE_Change()
With Me.BARCODE
If Len(.Text) > 5 Then .Value = Null: Exit Sub
If Not boolStop And .Text = strStop Then
VBA.MsgBox prompt:="Non si parte con stop ma con start!", _
buttons:=vbCritical + vbOKOnly, _
Title:="Attenzione"
Exit Sub
End If
If Len(.Text) > 0 Then
setStatus Me.BARCODE, boolT, boolF
End If
End With
End Sub
Private Sub setStatus(ByVal BARCODE As Access.TextBox, _
ByVal bt As Boolean, _
ByVal bf As Boolean)
With Me
Select Case BARCODE.Text
Case strStart
If bt Then
VBA.MsgBox prompt:=strMessSTA, _
buttons:=vbCritical + vbOKOnly, _
Title:="Attenzione"
.BARCODE = Null
Else
.STATOSTART = strStart
.DATE01 = VBA.Date()
.TIME01 = VBA.Now()
boolT = True
boolStop = True
End If
boolF = False
DoEvents
Sleep 1500
eraseTextBoxes
Case strStop
If bf Then
VBA.MsgBox prompt:=strMessSTo, _
buttons:=vbCritical + vbOKOnly, _
Title:="Attenzione"
.BARCODE = Null
boolT = False
Else
.STATOSTOP = strStop
.DATE02 = VBA.Date()
.TIME02 = VBA.Now()
boolF = True
.BARCODE.Enabled = False
DoEvents
Sleep 1500
eraseTextBoxes
End If
End Select
End With
End Sub
Private Sub eraseTextBoxes()
With Me
.STATOSTOP = Null
.DATE02 = Null
.TIME02 = Null
.STATOSTART = Null
.DATE01 = Null
.TIME01 = Null
.BARCODE = Null
End With
End Sub
Private Sub cmdNewDatas_Click()
Me.BARCODE.Enabled = True
Me.BARCODE.SetFocus
boolT = False
eraseTextBoxes
End Sub
ciao, Sandro.