[ MAshUP @ 22.12.2010. 20:46 ] @
Dobro vece Imam napravljenu bazu podataka Microsof Accessu 2003 i zelim da vrsim upis u tu bazu pomocu VBA projekta (koda). Navedeni kod radi perfektno u VB6 ali kada ga prebacim u VBA, dobijam gresku( Error 91, (Object Variable or With Block not set)). Sve komponente su povezane kao i u VB6. Koristim microsoft ADO data control u VBA i u VB6... Ne znam gde gresim... Pa ako moze mala pomoc, da ispravim navedebu gresku. Hvala p.s ukoliko je tema na pogresnom mestu, izvinjavam se administratoru i molim da je prebaci u odgovarjuci deo Code: Private Sub cmdAdd_Click() txtrfidID = "" txtIme = "" txtPrezime = "" txtOperacija = "" txtRadni_Dan = "" cmbpozicija = "" txtDatum = "" txtKomentar = "" cmdFind.Enabled = False cmdDelete.Enabled = False cmdSave.Enabled = True txtrfidID.Enabled = True txtIme.Enabled = True txtPrezime.Enabled = True txtOperacija.Enabled = True txtRadni_Dan.Enabled = True cmbpozicija.Enabled = True txtDatum.Enabled = True txtKomentar.Enabled = True txtrfidID.BackColor = &H80000005 ' siva boja txtIme.BackColor = &H80000005 txtPrezime.BackColor = &H80000005 txtOperacija.BackColor = &H80000005 txtRadni_Dan.BackColor = &H80000005 cmbpozicija.BackColor = &H80000005 txtKomentar.BackColor = &H80000005 txtDatum.BackColor = &H80000005 cmdADD.Enabled = False End Sub Private Sub cmdDelete_Click() Dim tempiraj As Integer If txtRadni_Dan = "" Then MsgBox "Niste izabrali podatke koje zelite da izbrisete!", , "Obavestenje" Exit Sub End If adoData.Refresh If (adoData.Recordset.EOF = True) Then MsgBox "Baza je prazna!", , "Obavestenje" Exit Sub End If adoData.Refresh adoData.Recordset.MoveFirst ' pomeranje prvog Do Until (adoData.Recordset.EOF) ' do kraja baze tempiraj = adoData.Recordset.Fields(0).Value ' u tempiraj stavljamo indeks koji zelimo da izbrisemo If (txtRadni_Dan = tempiraj) Then Exit Do ' izlazak iz petlje End If adoData.Recordset.MoveNext ' pomeranje sledeceg Loop On Error GoTo fer adoData.Recordset.Delete ' brisanje zeljenog indeksa MsgBox "Sudent je izbrisan iz baze", , "Obavestenje" adoData.Recordset.MovePrevious If (adoData.Recordset.EOF = True) Then adoData.Recordset.MoveFirst ' pomeranje prvog txtrfidID = "" txtIme = "" txtPrezime = "" txtOperacija = "" txtRadni_Dan = "" cmbpozicija = "" txtDatum = "" txtKomentar = "" End If txtRadni_Dan = adoData.Recordset.Fields(0).Value txtrfidID = adoData.Recordset.Fields(1).Value txtIme = adoData.Recordset.Fields(2).Value txtPrezime = adoData.Recordset.Fields(3).Value txtOperacija = adoData.Recordset.Fields(4).Value txtKomentar = adoData.Recordset.Fields(5).Value cmbpozicija = adoData.Recordset.Fields(6).Value txtDatum = adoData.Recordset.Fields(7).Value Exit Sub fer: MsgBox "Greska: podaci nisu izbrisani iz baze!" End Sub Private Sub cmdExit_Click() Unload Me End Sub Private Sub cmdFind_Click() Dim ulaz As Integer Dim info As String 'On Error GoTo hell If (adoData.Caption <> "") Then If adoData.BOFAction = False Then ulaz = InputBox("Unesite ID kartice:", "Unos") If ulaz <> " 0 " Then If (InStr(ulaz, "\") Or InStr(ulaz, "/") Or InStr(ulaz, ":") Or InStr(ulaz, "*") Or InStr(ulaz, "?") Or InStr(ulaz, "<") Or InStr(ulaz, ">") Or InStr(ulaz, "|") Or InStr(ulaz, Chr(34))) = 0 Then adoData.Recordset.MoveFirst Do While Not adoData.Recordset.EOF If adoData.Recordset.Fields(1) = ulaz Then 'List1.AddItem Data1.Recordset.Fields(0).Value frmPretraga.List1.AddItem "Kartica_ID:" frmPretraga.List1.AddItem adoData.Recordset.Fields(1).Value 'List1.AddItem Data1.Recordset.Fields(2).Value 'List1.AddItem Data1.Recordset.Fields(3).Value frmPretraga.List1.AddItem "Operacija:" frmPretraga.List1.AddItem adoData.Recordset.Fields(4).Value frmPretraga.List1.AddItem "Komentar:" frmPretraga.List1.AddItem adoData.Recordset.Fields(5).Value frmPretraga.List1.AddItem "Pozicija:" frmPretraga.List1.AddItem adoData.Recordset.Fields(6).Value frmPretraga.List1.AddItem "Datum:" frmPretraga.List1.AddItem adoData.Recordset.Fields(7).Value 'Exit Sub End If adoData.Recordset.MoveNext Loop adoData.Recordset.MoveFirst Else info = MsgBox("Ne mogu se unositi sledeci znakovi: \ / : * ? < > | " & Chr(34), vbCritical, "Greska") End If Else info = MsgBox("Niste uneli ID kartice", vbCritical, "Greska") End If Else info = MsgBox("Baza je prazna", vbInformation, "Obavestenje") End If Else info = MsgBox("Niste ucitali bazu", vbCritical, "Greska") End If 'hell: 'MsgBox Err.Description, vbCritical, "Error:" & CStr(Err.Number) End Sub Private Sub cmdPonisti_Click() If MsgBox("Undo changes?", vbYesNo + vbQuestion, " Cancel Edits") = vbYes Then adoData.Refresh cmdADD.Caption = "Novi_Upis" End If End Sub Private Sub cmdPrethodni_Click() On Error GoTo greska0 If (adoData.Recordset.BOF = False) Then adoData.Recordset.MovePrevious ' pomeranje prethodnog 'upis prethodnog txtRadni_Dan = adoData.Recordset.Fields(0).Value txtrfidID = adoData.Recordset.Fields(1).Value txtIme = adoData.Recordset.Fields(2).Value txtPrezime = adoData.Recordset.Fields(3).Value txtOperacija = adoData.Recordset.Fields(4).Value txtKomentar = adoData.Recordset.Fields(5).Value cmbpozicija = adoData.Recordset.Fields(6).Value txtDatum = adoData.Recordset.Fields(7).Value Exit Sub End If greska0: On Error GoTo fee1 adoData.Recordset.MoveNext MsgBox "Dosliste do pocetka baze!", , "Obavestenje" txtRadni_Dan = adoData.Recordset.Fields(0).Value txtrfidID = adoData.Recordset.Fields(1).Value txtIme = adoData.Recordset.Fields(2).Value txtPrezime = adoData.Recordset.Fields(3).Value txtOperacija = adoData.Recordset.Fields(4).Value txtKomentar = adoData.Recordset.Fields(5).Value cmbpozicija = adoData.Recordset.Fields(6).Value txtDatum = adoData.Recordset.Fields(7).Value Exit Sub fee1: MsgBox "Baza je prazna", , "Obavestenje" End Sub Private Sub cmdSave_Click() If txtIme.Text = "" Then MsgBox "Niste uneli ime radnika!", , "Obavestenje" Exit Sub End If If txtPrezime.Text = "" Then MsgBox "Niste uneli prezime radnika!", , "Obavestenje" txtPrezime.SetFocus Exit Sub End If If cmbpozicija.Text = "" Then MsgBox "Niste uneli poziciju palete!", , "Obavestenje" cmbpozicija.SetFocus Exit Sub Else End If If txtrfidID.Text = "" Then MsgBox "Niste uneli ID kartice!", , "Obavestenje" txtrfidID.SetFocus Exit Sub End If 'On Error GoTo postoji 'Upis u bazu' If (Not adoData.Recordset.EOF) Then adoData.Recordset.MoveLast End If adoData.Recordset.AddNew adoData.Recordset.Fields(1) = txtrfidID.Text adoData.Recordset.Fields(2) = txtIme.Text adoData.Recordset.Fields(3) = txtPrezime.Text adoData.Recordset.Fields(4) = txtOperacija.Text adoData.Recordset.Fields(5) = txtKomentar.Text adoData.Recordset.Fields(6) = cmbpozicija.Text adoData.Recordset.Fields(7) = txtDatum.Text adoData.Recordset.Update cmdADD.Enabled = True MsgBox "Podaci su uneseni u bazu", , "Obavestenje" cmdFind.Enabled = True cmdDelete.Enabled = True cmdSave.Enabled = False ' bela boja txtrfidID.BackColor = &H8000000B txtIme.BackColor = &H8000000B txtPrezime.BackColor = &H8000000B txtOperacija.BackColor = &H8000000B txtRadni_Dan.BackColor = &H8000000B cmbpozicija.BackColor = &H8000000B txtKomentar.BackColor = &H8000000B txtDatum.BackColor = &H8000000B txtrfidID.Enabled = False txtIme.Enabled = False txtPrezime.Enabled = False txtOperacija.Enabled = False txtRadni_Dan.Enabled = False cmbpozicija.Enabled = False txtDatum.Enabled = False txtKomentar.Enabled = False Exit Sub 'postoji: 'MsgBox "ID operacije " & txtRadni_Dan & " postoji u bazi !", , "Obavestenje" 'txtrfidID = "" 'txtIme = "" 'txtPrezime = "" 'txtOperacija = "" 'txtRadni_Dan = "" 'cmbpozicija = "" 'txtDatum = "" 'txtKomentar = "" 'cmdADD.Enabled = False 'txtrfidID.SetFocus End Sub Private Sub cmdSledeci_Click() On Error GoTo greska1 If (adoData.Recordset.EOF = False) Then adoData.Recordset.MoveNext txtIme = adoData.Recordset.Fields(0).Value txtRadni_Dan = adoData.Recordset.Fields(0).Value txtrfidID = adoData.Recordset.Fields(1).Value txtIme = adoData.Recordset.Fields(2).Value txtPrezime = adoData.Recordset.Fields(3).Value txtOperacija = adoData.Recordset.Fields(4).Value txtKomentar = adoData.Recordset.Fields(5).Value cmbpozicija = adoData.Recordset.Fields(6).Value txtDatum = adoData.Recordset.Fields(7).Value Exit Sub End If greska1: On Error GoTo fee adoData.Recordset.MovePrevious MsgBox "Dosli ste do kraja baze!", , "Obavestenje" txtRadni_Dan = adoData.Recordset.Fields(0).Value txtrfidID = adoData.Recordset.Fields(1).Value txtIme = adoData.Recordset.Fields(2).Value txtPrezime = adoData.Recordset.Fields(3).Value txtOperacija = adoData.Recordset.Fields(4).Value txtKomentar = adoData.Recordset.Fields(5).Value cmbpozicija = adoData.Recordset.Fields(6).Value txtDatum = adoData.Recordset.Fields(7).Value Exit Sub fee: MsgBox "Baza je prazna" End Sub Private Sub IeTimer1_Timer() txtDatum.Text = Date End Sub Private Sub UserForm_activate() With cmbpozicija 'da ispise portove u combo box portovi .AddItem "1" .AddItem "2" .AddItem "3" .AddItem "4" .AddItem "5" .AddItem "6" End With End Sub Edit: Dodati tagovi za 'source'. >Tema je za Access forum. [Ovu poruku je menjao 3okc dana 24.12.2010. u 10:15 GMT+1] |