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