[ vexx @ 16.01.2003. 00:34 ] @
Imam jedan problem sa "vremenskim kasnjenjem" podatka iz Access tabele.Iz frmKalkM pozivam frmNewDobavljac.U njoj ubacujem novi recordset kojeg treba da vratim u frmKalkM u cboBox.Stos je sto program radi jedino kad stavim tacku prekida kad snimim podatke(znaci pre poziva na requery) i to samo ako taj prekid traje oko 5 sekundi.Sve mi je to pomalo cudno.Nisam znao da se tako nesto dogadja.Evo stavicu kod pa ako neko bude imao vremena nek mi pomogne.Hvala.



***************frmKalkM**********************************
Private Sub cmdNewDobavljac_Click()
frmNewDobavljac.Show vbModal
End Sub
-------------------------------------------------------
Public Function Reqery_dobavljac(iBound As Integer)
rsPartneri.Requery
dbcDobavljac.BoundText = iBound
End Function
***************frmNewDobavljac***************************
Option Explicit
Dim cn As ADODB.Connection
Dim connectString As String
Dim rs As ADODB.Recordset
Dim iBound As Integer
----------------------------------------------------------
Private Sub cmdPrenesi_Click()

With rs
.AddNew
!Naziv = Trim(Text2.Text)
!Vlasnik = Trim(Text3.Text)
!MB = Trim(Text4.Text)
!ZiroRacun = Trim(Text5.Text)
!Prodavac = True
!Mesto = Trim(Text6.Text)
!Adresa = Trim(Text7.Text)
!Tel = Trim(Text8.Text)
!Fax = Trim(Text9.Text)
!Mail = Trim(Text10.Text)
!Web = Trim(Text11.Text)
.Update
iBound = !ID
End With

rs.Close
Set rs = Nothing
cn.Close

MsgBox "Podatak uspešno snimljen !!!", vbInformation, "Obaveštenje"

Call frmKalkM.Reqery_dobavljac(iBound)

Unload Me

End Sub
-----------------------------------------------------------------------------
Private Sub Form_Load()

Set cn = New ADODB.Connection
connectString = "Provider=Microsoft.Jet.OLEDB.4.0" & ";" & "Data Source=e:\vexx Document\Programing\VisulBasic6\Diplomski\Diplomski.mdb"
cn.Open connectString

Set rs = New ADODB.Recordset
rs.Open _
"Select * From tblPartner Order By ID", cn, adOpenKeyset, adLockOptimistic

End Sub
[ y0gie @ 23.01.2003. 20:49 ] @
Nemoj nikad stavljati podatke u bazo preko rs.addNew.
bolje ti je uvjek upotrebljavati SQL. Znači:

rs.open("INSERT INTO table VALUES(...),db_conn);
...
rs.close

Drugo: umjesto frmNewDobavljac.Show vbModal probaj sa Load frmNewDobavljac
i onda naravno sa UnLoad frmNew...

Mozda to resi problem.

Ako ne onda samo treba da pazis na red stavljanja podataka, otvaranja i zatvaranja Recordseta...nema druge
[ mvlado @ 16.02.2003. 14:23 ] @
1. Koriscenje Jet drajvera je vrlo nezahvalno iz razloga sto putanju (PATH) do baze moras unapred dobro da isplaniras,
pogotovu ako ti je baza na serveru a aplikacija na nekom drugom racunaru.
Po mom misljenju koriscenje ODBC drajvera je prakticnije ali i sporije resenje. Posto ti ne pravis bazu za
banku nego za malu firmu onda to i nije neki problem.
Nema potrebe da kreiras Connection objekat, za to sluzi DataEnvironament.

2. Imao sam isti problem kao i ti. Prethodno ponudjeno resenje (yOgie) je potpuno pogresno. Stvar moras posmatrati ovako:
Prvo Baza je baza, a aplikacija je aplikacija. Kada otvoris neki rekordset onda je to kopija podataka iz baze. Kada
dodajes novi podatak u bazo onda to moras da uradis i u rekordsetu. Znaci AddNew metod je resenje.
Kada izvrsis INSERT INTO upit potrebni je neko vreme da se izvrsi promena u bazi (kod tebe 5s, kod mene 15s, itd.
zavisi da li imas 486 ili XP procesor). Znaci kada dodajes novi zapis uradi to na oba mesta, a ako koristis ADODC kontrolu
onda povezi TexBox kontrole sa ADODC kontrolom i kada uradis ADODC.AddNew, popunis polja, pa ADODC.Update
onda ce se automacki izvrsiti Update baze. Ovde ima mnogo sitnis zezalica koje treba dobro prouciti, sve je vrlo nelogicno.
Ako pristupas ka vise tabela preko nekog upita onda ovo ne radi bas, kada hoces da promenis podatak u samo jednoj tabeli onda
VB pokusava Update nad svim tabelama pa se javlja greska "isti primarni kljuc", a ja ne znam kako da ga nateram da proradi.

Preporucio bi ti da dobro proucis tehniku ADO programiranja baza podataka pod VB pa ce ti sve biti jasnije,
MSDN je pravo mesto.
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1033\SNA.chm::/devdoc/live/sna/ado3_1jdu.htm
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1033\ado200.chm::/mdoverview_2obx.htm
[ Vuki @ 28.02.2003. 00:24 ] @
Evo ovako, ja sam imao slican problem. Sve programe ja sam radio sa odbc drivera a nedavno sam radio jedan programcic sa Jet driverom i tu se javio problem bas oko require. Dakle Jet driver ne podrzava require ili je neka greska kod Bilija. Uglavnom umesto require moras prvo zatvoriti rekordset ako je otvoren pa ga ponovo otvoriti kao sto si ga otvorio kod FOrm_load tj kod tebe funkciju koju koristis zameni. Umesto require prvo rs.close pa rs.open...
Nadam se da sam pomogao>Cao
[ Sija @ 24.05.2007. 20:33 ] @
Jeste stara tema ali da ne otvaram novu pa ako neko moze ovo da malo pojasni. Meni se isto desava:
Npr: nesto ovako napravim:

rsProvjeri.Open "select * from tbl where broj=broj" , cnnKonekcija, adOpenStatic, adLockOptimistic

rsProvjeri.AddNew
rsProvjeri.Fields("broj").Value = CLng(txtBroj.Text)
rsProvjeri.Update
rsProvjeri.Close
rsProvjeri.Open "select ID from tbl where broj=broj", cnnKonekcija, adOpenStatic, adLockOptimistic


E treba taj ID ali ga ne mogu dobiti odmah tj. BOF ili EOF greska.
[ dava @ 25.05.2007. 07:33 ] @
Citat:
Sija
rsProvjeri.Open "select * from tbl where broj=broj" , cnnKonekcija, adOpenStatic, adLockOptimistic


Pretpostavljam da ti je broj (ovaj zadnji) varijabla.
Prema tome trebao bih ovako napisati:

rsProvjeri.Open "select * from tbl where broj= " & broj , cnnKonekcija, adOpenStatic, adLockOptimistic

[ Sija @ 25.05.2007. 14:31 ] @
Nije problem u broju. To sam napiso za primjer. Problem je kada nesto upisem u bazu i odmah to isto pozovem nema ga. Treba proci neko vrijem tj. par sec da mogu pozvati.
[ Sija @ 25.05.2007. 14:55 ] @
Nije problem u broju. To sam napiso za primjer. Problem je kada nesto upisem u bazu i odmah to isto pozovem nema ga. Treba proci neko vrijem tj. par sec da mogu pozvati.
[ Ero S Ovoga Sveta @ 25.05.2007. 15:59 ] @
Probaj da koristis "UpdateBatch" umjesto "Update"!
[ Sija @ 26.05.2007. 13:19 ] @
Hvala!