 |
Steg 7

Den observante användaren har säkert lagt märke till vissa "konstigheter" med vissa delar av
programmet som det är nu. Dessa är bland annat:
- Validate med beaktande av tomma datum fungerar ej.
- Om vi antar att ni tänkt rätt så kan detta kan bero på en bug i VB 6.0. Om man sätter Visual Studios Service Pack version 4 eller nyare på datorn kommer det dock att fungera
- Sensmoral: Se alltid till att kolla om det finns nyare updateringar av programmet.
- När vi raderar en post kommer postnumret i lblStatus att vara ett
steg fel tills vi bläddrar via början av tabellen
- För det första är det väl mer logoskt att gå till nästa post och inte till föregående.
Ändra således MovePrevious till MoveNext i "Delete" koden.
- Sök sedan fram följande rader i Form_Load händelseproceduren:
strSQL = "SELECT * FROM ado"
RS.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
Och sätt in följande rad mellan dessa två rader
RS.CursorLocation = adUseClient
Så att resultatet blir
strSQL = "SELECT * FROM ado"
RS.CursorLocation = adUseClient
RS.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
- Den där "Add New" verkar konstig (?)
- Och alla exempel jag har hittat i böcker och artiklar är lika konstiga...
En möjlig lösning som påminner om Access användnig är följande:
Sätt till en knapp i till i cmdNavigera control arrayen. Den kommer att få nummer 4
Se till att cmdNavigera_Click händelseproceduren ser ut på fäljande sätt
Private Sub cmdNavigera_Click(Index As Integer)
On Error GoTo FEL_I_NAVIGERA
Select Case Index
Case 0
RS.MoveFirst
Case 1
RS.MovePrevious
Case 2
RS.MoveNext
Case 3
RS.MoveLast
' Ny del för insättining
Case 4
RS.AddNew
End Select
FixaNavKnapparna True
Exit Sub
FEL_I_NAVIGERA:
' Kan felet bero på att vi bläddrat
' bort från en tom ny post ?
If RS.EditMode = adEditAdd Then
RS.CancelUpdate
Else
MsgBox Err.Description
RS.CancelUpdate
End If
Resume Next
End Sub
Modifiera även fixaNavKnapparna något
Private Sub FixaNavKnapparna(ByVal enabled As Boolean)
Dim ctrl As Object
For Each ctrl In cmdNavigera
ctrl.enabled = enabled
Next
On Error Resume Next
If Not RS.Supports(adAddNew) Then
cmdNavigera(4).enabled = False
End If
If Not RS.Supports(adMovePrevious) Then
cmdNavigera(1).enabled = False
End If
If RS.BOF Then
cmdNavigera(1).enabled = False
End If
If RS.EOF Then
cmdNavigera(2).enabled = False
End If
End Sub
|
|