|  | 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
 
 |  |