Προς το περιεχόμενο

VB + data control


Dvs

Προτεινόμενες αναρτήσεις

Δημοσ.

Private Sub Form_Initialize()

 

' Loading database

Data1.DatabaseName = App.Path + "\Database.mdb"

Data1.Exclusive = False

Data1.Refresh

 

End Sub

 

Private Sub Form_Load()

 

lstProg.Clear

' Finding all programs and refreshing lstprog

 

Data1.RecordSource = "SELECT * FROM ProgName"

Data1.Refresh

 

End Sub If (Not Data1.Recordset.EOF) Then

 

Dim i As Integer

For i = 0 To Data1.Recordset.RecordCount - 1

 

Data1.Recordset.MoveLast

Data1.Recordset.MoveFirst

lstProg.AddItem (Data1.Recordset.Fields(1))

Data1.Recordset.MoveNext

Next i

 

End If

 

sta bold gramata perno to error: object variable or with block variable not set! Kapio psilokoulo lathos einai alla ti omos? :)

 

Δημοσ.

kata ena paraxeno tropo o kodikas autos leitourgei:

 

 

 

Private Sub Form_Initialize()

 

' Loading database

Data1.DatabaseName = App.Path + "\Database.mdb"

Data1.Exclusive = False

Data1.Refresh

 

Call fuckme

 

End Sub

 

 

 

Sub fuckme()

 

lstProg.Clear

' Finding all programs and refreshing lstprog

 

Data1.RecordSource = "SELECT * FROM ProgName"

Data1.Refresh

 

If (Not Data1.Recordset.EOF) Then

 

Dim i As Integer

For i = 0 To Data1.Recordset.RecordCount - 1

 

Data1.Recordset.MoveLast

Data1.Recordset.MoveFirst

lstProg.AddItem (Data1.Recordset.Fields(1))

Data1.Recordset.MoveNext

Next i

 

End If

End Sub

 

 

pos exigeitai auto? :)

Δημοσ.

Νομίζω οτι αφού δεν άρχισες να κινείσαι μέσα στο recordset, δεν έχει νόημα το EOF. Καλύτερα να κάνεις τον έλεγχο με το RecordCount.

 

Δημοσ.

Ο κώδικας σκάει γιατί μάλλον πρώτα εκτελείται η Load και μετά η Initialize!! Βάλε breakpoints και στις 2 για να βεβαιωθείς ότι αυτό είναι.....

 

Στη δεύτερη περίπτωση δεν έχεις Load και όλα εκτελούνται στην Initialize!!!

 

Σωστά??

 

 

Δημοσ.

Ναι, πρώτα εκτελείται η initialize, αλλά πολλές φορές συμβαίνει το εξής: σε κάποια γραμμή του κώδικα της αλλάζει κάποιο property ενός control της φόρμας, και έτσι γίνεται triggered το form_Load, και συνεχίζει εκεί η εκτέλεση του κώδικα, και όταν τελειώσει η form_Load ξαναγυρνά η εκτέλεση στην initialize.

 

Βάλε breakpoints στις δυο procedures και κάνε "step" (με το F8) και δες με ποια σειρά εκτελούνται οι εντολές.

Δημοσ.

Είναι λογικό να υπάρχει κώδικάς μετά το end sub ??? Μου φαίνετε αρκετά περίεργο. Μάλλον αυτό φταίει.

Δοκιμάσε την If να την βάλεις πριν το end sub.

Δημοσ.

drm: to end sub apla emeine ekei apo to copy paste <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/wink.gif" alt="" />

The_Edge: dokimasa to breakpoint alla oi ektoles ektelountai kanonika mexri ekei pou exei runtime error - o kodikas xekinaei apo to initialize kai den me metaferei katholou sto load

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...