endrezr
Slavan
- Učlanjen(a)
- 29.01.2009
- Poruke
- 214
- Poena
- 319
Imam jedan manji problem u VB6, koji me izuzetno nervira. Naime pisem neki program koji barata nekom bazom podataka na osnovu citanja broja sa smart kartica (halo kartica). Mikrokontroler iscita broj halo kartice pa salje na serijski port kompjutera. Kompjuter dobija broj i na osnovu broja ukazuje na neki od unosa.
U programu imam komandno dugme koje inicira dodavanje novog podatka u bazu sa (.addnew) i posle upisa trazenih podataka imam dugmad za sacuvanje (.update) ili otkaz (.cancelupdate) upisa. To sve funkcionise dobro i bas kako i hocu.
Medjutim, hocu da unesem deo koji u zavisnosti od odgovora na pitanje postavljeno u messagebox-u radi isto. I to radim na sledeci nacin (podebljani deo):
Ali tada mi je neuspesno, jer program mi pripremi sve prozore koje hocu ali ja pre nego sto bilo sta unesem pritisnem command button Odustani i dobijem gresku:
Nije mi jasno zasto dobijam ovu gresku kada program sam zove cmddodavanje? Naravno ne dobijam je kada ja kliknem na cmddodavanje na UI prilikom koriscenja programa. Gde mi nestane poziv od Recordset.Addnew ili Recordset.Edit ili zasto se ne generise kada program sam zove cmddodavanje? Najverovatnije sam dosta nejasan, pa ako se neko razume u materiju nek me pita ono sto treba da blize objasnim.
P.S. Mogao bih da smislim neku zaobilaznicu, ali to mi nije to. Ako neko ima bilo kakvu ideju bio bih zahvalan na pomoci.
P.P.S.: Probao sam da umesto cmdDodavanje_click stavim kod iz cmddodavanje, ali i dalje mi je rezultat greska. Iako u kodu postoji addnew.
U programu imam komandno dugme koje inicira dodavanje novog podatka u bazu sa (.addnew) i posle upisa trazenih podataka imam dugmad za sacuvanje (.update) ili otkaz (.cancelupdate) upisa. To sve funkcionise dobro i bas kako i hocu.
Medjutim, hocu da unesem deo koji u zavisnosti od odgovora na pitanje postavljeno u messagebox-u radi isto. I to radim na sledeci nacin (podebljani deo):
Kod:
If DBGrid1.ApproxCount = 0 Then
'MsgBox ("Ubacena kartica ne postoji u bazi!")
'MsgBox("Ubacena kartica ne postoji u bazi! Da li zelite da je dodate u bazu?, vbQuestion + vbYesNo + vbDefaultButton2, "Confirm") = vbNo
response = MsgBox("Ubacena kartica ne postoji u bazi! Da li zelite da je dodate u bazu?", vbYesNo + vbQuestion + vbDefaultButton2, "Izbor")
[B] If response = vbYes Then
SSTab1.Tab = 1
cmdDodavanje_Click
txtSBK.Text = SerijskiBrojKartice[/B]
'Data1.RecordSource = "select * from pin"
'Data1.Refresh
'Data1.Recordset.AddNew
'vba.
'frmmain.cmdDodavanje.
Else
End If
Data1.RecordSource = "select * from pin"
Data1.Refresh
Else
Beep
'PIN = ""
temp2 = Data1.Recordset.Fields("ime")
temp3 = Data1.Recordset.Fields("prezime")
temp4 = temp2 & " " & temp3
txtMonitor.Text = "Dobrodosli " & temp4 & "!" & " Unesite Vas PIN!"
flagPIN = True
cmd0.Enabled = True
cmd1.Enabled = True
cmd2.Enabled = True
cmd3.Enabled = True
cmd4.Enabled = True
cmd5.Enabled = True
cmd6.Enabled = True
cmd7.Enabled = True
cmd8.Enabled = True
cmd9.Enabled = True
cmdPotvrdi.Enabled = True
cmdObrisi.Enabled = True
txtTest3.Text = temp4
txtTest4.Text = PIN
'ubaciti funkciju ili flag za dalji rad
End If
Ali tada mi je neuspesno, jer program mi pripremi sve prozore koje hocu ali ja pre nego sto bilo sta unesem pritisnem command button Odustani i dobijem gresku:
run time error '3020'
update or cancel update without addnew or edit
Nije mi jasno zasto dobijam ovu gresku kada program sam zove cmddodavanje? Naravno ne dobijam je kada ja kliknem na cmddodavanje na UI prilikom koriscenja programa. Gde mi nestane poziv od Recordset.Addnew ili Recordset.Edit ili zasto se ne generise kada program sam zove cmddodavanje? Najverovatnije sam dosta nejasan, pa ako se neko razume u materiju nek me pita ono sto treba da blize objasnim.
P.S. Mogao bih da smislim neku zaobilaznicu, ali to mi nije to. Ako neko ima bilo kakvu ideju bio bih zahvalan na pomoci.
P.P.S.: Probao sam da umesto cmdDodavanje_click stavim kod iz cmddodavanje, ali i dalje mi je rezultat greska. Iako u kodu postoji addnew.