[ Untouchabble @ 21.03.2008. 00:41 ] @
| Prakticno sam pocetnik u Accessu, pravim neku manju bazu za robno knjigovodstvo. Uglavnom, evo problema:
Code: Public Sub Unesi()
Dim cnnUnos As New ADODB.Connection
Dim rstUnos As New ADODB.Recordset
Set cnnUnos = CurrentProject.Connection
'Otvaram recordset za tabelu Artikli i unosim vrednosti public promenljivih
rstUnos.Open "tblArtikli", cnnUnos, adOpenKeyset, adLockOptimistic, adCmdTable
rstUnos.AddNew
rstUnos!PLU = intPLU
rstUnos!Artikal = strArtikal
rstUnos!TipObuce = strTipObuce
rstUnos!IDDobavljac = lngIDDobavljac
rstUnos!NabavnaCena = sngNabavnaCena
rstUnos!ProdajnaCena = sngProdajnaCena
rstUnos!Kolicina = intKolicina
rstUnos!Komentar = strKomentar
rstUnos.Update
lngIDArtikal = rstUnos!IDArtikal 'Pamtim autonumber vrednost
'zatvaram recordset
rstUnos.Close
'Otvaram nov recordset za tabelu UnosRobe i unosim vrednosti public promenljivih
rstUnos.Open "tblUnosRobe", cnnUnos, adOpenKeyset, adLockOptimistic, adCmdTable
rstUnos.AddNew
rstUnos!DatumUnosa = dateDatum
rstUnos!BrRacuna = strBrojRacuna
rstUnos!TipUnosa = strTipUnosa
rstUnos!IDArtikal = lngIDArtikal
rstUnos!IDDobavljac = lngIDDobavljac
rstUnos!UnosKolicina = intKolicina
rstUnos!UnosProdajnaCena = sngProdajnaCena
rstUnos.Update
rstUnos.Close
cnnUnos.Close
End Sub Umesto lngIDArtikal, u IDArtikal polju tabele UnosRobe mi pamti lngIDDobavljac??? Molim za pomoc sto pre, probijam rok. |
[ Getsbi @ 21.03.2008. 06:44 ] @
Ja radim u DAO 3.6 standardu tako da nisam baš mnogo pozvan da komentarišem ADO ali probaj da u redu ispod ovog:
'Otvaram nov recordset za tabelu UnosRobe i unosim vrednosti public promenljivih
rstUnos.Open "tblUnosRobe", cnnUnos, adOpenKeyset, adLockOptimistic, adCmdTable
napišeš:
MsgBox lngIDArtikal
Da vidiš koju vrednost će da ti vrati. Mislim da bi trebalo da dimenzionišeš promenljivu "lngIDArtikal" gore ispod
Dim rstUnos As New ADODB.Recordset
Takođe je dobra praksa da na početku modula ispod Option Compare Database napišeš
Option Explicit
[ domaci_a_nas @ 21.03.2008. 09:49 ] @
Slažem se u potpunosti sa onime što je Getsbi rekao za deklarisanje promenljivih, mada pošto se radi o deklarisanju unutar iste procedure vrednost lngIDArtikal bi trebalo da se očuva i bez toga. Probaj da problem rešiš na sledeći način bez lngIDArtikal. Tako bi update tblUnosRobe izgledao ovako :
rstUnos!IDArtikal = DMax("IDArtikal","tblArtikli")
[ Untouchabble @ 21.03.2008. 09:54 ] @
Uradio sam to, i vraca pravu(potrebnu) vrednost! Ali nece da je sacuva u tabeli.
Ne moram da dimenzionisem promenljivu jer sam je vec deklarisao kao Public lngIDArtikal As Long. Btw, kako to funkcionise kod Accessa? Da li u svakom modulu/formu moram da deklarisem Public promenljive? Jer ako ukljucim Require Variable Declaration, prijavljuje mi gresku u svim Form-ovima, osim modula u kome su promenljive deklarisane. Tj, kako da postavim odredjeni modul kao pocetni, kao npr Sub Main u obicnom VB?
[ Untouchabble @ 21.03.2008. 10:23 ] @
Resen problem, lookup upit u polju IDArtikal je bio lose definisan, dakle nema veze sa kodom. I dalje me zanima:
Citat:
Da li u svakom modulu/formu moram da deklarisem Public promenljive? Jer ako ukljucim Require Variable Declaration, prijavljuje mi gresku u svim Form-ovima, osim modula u kome su promenljive deklarisane. Tj, kako da postavim odredjeni modul kao pocetni, kao npr Sub Main u obicnom VB?
Hvala!
[ Getsbi @ 21.03.2008. 11:42 ] @
Ne moraš u svakom. Deklaracija Public variabli je dovoljna u jednom od objekata Modules. Prijavljivaće grešku ako ih budeš ponavljao i u modulima formi ili reporta. Ne moraš da postavljaš taj modul sa Public variablama kao početni jer je vidljiv u cleom programu. Mislim da mogu dve službene reči da se upotrebe za tu namenu: Global ili Public.
[ Untouchabble @ 22.03.2008. 21:18 ] @
Hvala drugar!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.