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