ReadOnly blijkt niet echt ReadOnly te zijn

Status
Niet open voor verdere reacties.

Pinokkio89

Gebruiker
Lid geworden
23 okt 2006
Berichten
104
Goedendag,

Ik heb een knop op mijn form en als ik daarop klik wordt de volgende module afgelopen:

Code:
Function mdl_Intern_read()
On Error GoTo mdl_Intern_read_Err

    DoCmd.OpenForm "frm_Intern", acNormal, "", "", acReadOnly, acNormal
    
mdl_Intern_read_Exit:
    Exit Function

mdl_Intern_read_Err:
    MsgBox Error$
    Resume mdl_Intern_read_Exit

End Function

Op frm_Intern heb ik verschillende invulvelden staan, waaronder een ordernummer en een datum. Wanneer ik in deze velden klik, kan ik vervolgens geen tekst invoeren. Dit klopt vanwege het ReadOnly karakter.

Het probleem is echter dat ik bij de datumvelden (OrderDate, SalesOrderDate en ExpDelivery) met een kalender werk, deze blijft helaas nog steeds werken wanneer het form ReadOnly geopend wordt. Dit houdt in dat wanneer users gebruik maken van de kalender om een datum in te voeren, zij de huidige waarde kunnen laten wijzigen in de zojuist aangeklikte waarde op de kalender, dit desondanks het ReadOnly karakter.

De code die ik heb gebruikt:
Code:
Dim cboOriginator As ComboBox

Private Sub Calendar6_Click()
cboOriginator.Value = Calendar6.Value
cboOriginator.SetFocus
Calendar6.Visible = False
Set cboOriginator = Nothing
End Sub

Private Sub OrderDate_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Set cboOriginator = OrderDate
Calendar6.Visible = True
Calendar6.SetFocus
If Not IsNull(cboOriginator) Then
   Calendar6.Value = cboOriginator.Value
Else
   Calendar6.Value = Date
End If

End Sub

Private Sub SalesOrderDate_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Set cboOriginator = SalesOrderDate
Calendar6.Visible = True
Calendar6.SetFocus
If Not IsNull(cboOriginator) Then
   Calendar6.Value = cboOriginator.Value
Else
   Calendar6.Value = Date
End If

End Sub

Private Sub ExpDelivery_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Set cboOriginator = ExpDelivery
Calendar6.Visible = True
Calendar6.SetFocus
If Not IsNull(cboOriginator) Then
   Calendar6.Value = cboOriginator.Value
Else
   Calendar6.Value = Date
End If

End Sub

Hoe kan ik deze code aanpassen zodat het datumveld niet aangepast kan worden wanneer het form ReadOnly wordt geopend.
Ik neem aan dat ik gebruik moet maken van: If Me.AllowEdits = False And Me.DataEntry = False Then ...

Maar ik weet niet waar ik deze moet zetten.

Alvast bedankt.
 
Volgens mij als eerste regel in de code van het datum veld en ik denk dat je dan de visible van de calender er aan kan hangen.

Frank
 
Laatst bewerkt:
Frank, bedankt voor uw antwoord.

Als ik er van maak:
Code:
Private Sub OrderDate_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

[COLOR="red"]If Me.AllowEdits = False And Me.DataEntry = False Then Calendar6.Visible = False Else[/COLOR]

Set cboOriginator = OrderDate
Calendar6.Visible = True
Calendar6.SetFocus
If Not IsNull(cboOriginator) Then
   Calendar6.Value = cboOriginator.Value
Else
   Calendar6.Value = Date
End If

End Sub
End If

End Sub

Blijf ik -in dit geval bij OrderDate- hetzelfde probleem houden.
 
Bedankt voor uw antwoord.

Alleen wat staat er in een andere Private Sub?
 
Ik ben er uit:

Code:
Private Sub OrderDate_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Set cboOriginator = OrderDate
If Me.AllowEdits = False And Me.DataEntry = False Then
    Calendar6.Visible = False
Else
    Calendar6.Visible = True
    Calendar6.SetFocus
End If
If Not IsNull(cboOriginator) Then
   Calendar6.Value = cboOriginator.Value
Else
   Calendar6.Value = Date
End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan