Centar za edukaciju-BiH


Stranice (2):1,2

#1 13.06.2025 08:46
nevsad Van mreze
Clan
Registrovan od:01.09.2010
Postovi:236


Predmet:list box za pretragu u mdb iaccdb
problem verzije mdb-2003 i verzije accdb-2019

u primjeru kalkulacije list box frm pretragaK radi fantasticno

preoblem je u accdb

isti kod se ponasa tako da poslije abdejta proizvoda i napustanja list boha uvijek ide na prvi record

svaka ideja dobro dosla

zakacio sam obadva primjera
list box i dobasvljača i proiizvod a poziva se sa F5
napominjem da je ovo ponasanje samo kad se koristi list box
normalnim unosom tastatuta ili barcode nema problema

svaka sugestija dobro dosla

pozdrav ramic

Prilozi:
Informacije o tipu datoteke za:rar  20032019.rar
Preuzimanja:5
Velicina datoteke:332.40 KB

↑  ↓

#2 15.06.2025 13:08
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,699


Predmet:Re:list box za pretragu u mdb iaccdb
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub lstResults_DblClick(Cancel As Integer)
  2. On Error GoTo Err_btnSelect_Click
  3.    
  4.     If Not IsNull(Me![lstResults].Column(0)) Then
  5.     Pproizvod = Me.lstResults.Column(0)
  6.     PintFlag = 1
  7.     DoCmd.Close acForm, "frmProizvodPretragaK", acSaveNo
  8.     Forms!frmKKalkulacija!frmKKalkulacijaDetalji.Form.Recordset.MoveLast
  9.     End If
  10.    
  11. ExitHere:
  12.     Exit Sub
  13.    
  14. Err_btnSelect_Click:
  15.     If err.Number = 2450 Then Resume ExitHere
  16.     MsgBox err.Number
  17.     Exit Sub
  18. End Sub

Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 16.06.2025 17:10
nevsad Van mreze
Clan
Registrovan od:01.09.2010
Postovi:236


Predmet:Re:list box za pretragu u mdb iaccdb
zahvaljujem na sugestiji ali
iskaz
Forms!frmKKalkulacija!frmKKalkulacijaDetalji.Form.Recordset.MoveLast
me stalno vrača na poslijednji record
ako koristim F5 dva puta uzastopno
imam samo jedan upis

navedeni iskaz mjenja kompletnu logiku upotrebe F5

jer ga koristim u kaklulaciji otpisu povratu fakturi itd

sve sto sam pokusavao vrača me na runtime error 3021 ili 2467

mene buni posve nesto drugo
ako je barcod sa scenera ima prolaz normalan ili rucni unos npr.sifreporizvoda 3333
sta se desava sa sifrom iz list boxa
probao sam next,new, previos i uredno rade ali last e radi

nemam ideje
↑  ↓

#4 17.06.2025 00:03
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,699


Predmet:Re:list box za pretragu u mdb iaccdb
to sam i napravio jer sam te tako razumio.
Ako nije dobro onda napisi ime forme ime polja iz kojeg koristis i sta zelis da napravis.
dosad znam da sa forme frmKKalkulacija F5 podize formu za izbor frmProizvodPretragaK te odaberes red podataka i forma se zatvara i vraca se fokus na frmKKalkulacija subformu frmKKalkulacijaDetalji i to na zdnji red.
iodio sam da nije bilo fokus na zadnjem redi pa sam mislio da to trazis te sam i napravio.

E neznam gdje ti to vraca
sve sto sam pokusavao vrača me na runtime error 3021 ili 2467
opisi malo kako to radi da nebi morao gubiti vrijeme i desifovati
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#5 17.06.2025 10:44
nevsad Van mreze
Clan
Registrovan od:01.09.2010
Postovi:236


Predmet:Re:list box za pretragu u mdb iaccdb
frmKKalkulacija!frmKKalkulacijaDetalji pravim kalkulaciju
koristim bar code ili interne sifre ako ih znam
kad neznam koristim F5 i otvaram frmProizvodPretragaK u polju "ime" trazim proizvod
po izboru proizvoda u list boxu=lstResults clikom proizvod dodajem kao novi record u polje proizvodi u
frmKKalkulacija!frmKKalkulacijaDetalji
problem je poslije izbora iz polja lstResults i klika izlazim iz forme frmProizvodPretragaK i vracam se u formu
frmKKalkulacija!frmKKalkulacijaDetalji ali mi fokus donosi na prvi recod u kalkulaciji a zapravo to bi trebao biti zadnji
da mi omoguci da zavrsim sa unosom elemenata kalkulacije tog proizvoda
nadam se da je malo jasnije
↑  ↓

#6 18.06.2025 12:52
Amelasar Van mreze
Clan
Registrovan od:07.04.2011
Postovi:337


Predmet:Re:list box za pretragu u mdb iaccdb
PreuzmiIzvorni kôd (Text):
  1. Private Sub sifra_KeyDown(KeyCode As Integer, Shift As Integer)
  2.    
  3. Dim bm As Variant
  4. bm = Me.Bookmark
  5.  
  6.    Dim rst As Recordset, strSQL As String
  7.    Dim msg, Msg1, Style, Title, Title1, Titlep, Response, MyString
  8.    Me.KeyPreview = True
  9.    Select Case KeyCode
  10. '          Case vbKeyReturn
  11. '               If Me.sifra <> "" And Me.RecordsetClone.RecordCount > 0 Then
  12. '                  strPreth = Me.sifra
  13. '                  DoCmd.GoToRecord , , acNewRec
  14. '               End If
  15.           Case vbKeyF5
  16.                PintFlag = 0
  17.                 DoCmd.OpenForm "frmPartnerPretraga", acNormal, , , , acDialog
  18.                If PintFlag = 1 Then
  19.                   Me!sifra = Psifra
  20.                   Call sifra_AfterUpdate
  21.                End If
  22. End Select
  23. End Sub

PreuzmiIzvorni kôd (Text):
  1. Private Sub sifra_AfterUpdate()
  2.     Me.KeyPreview = True
  3.     Me.naziv = DLookup("naziv", "tblPartner", "sifra = " & Me.sifra)
  4.  
  5.     ' Vratimo fokus na prethodni bookmark (ako postoji)
  6.     On Error Resume Next
  7.     If Not IsEmpty(bm) Then
  8.         Me.Bookmark = bm
  9.     End If
  10.     On Error GoTo 0
  11.  
  12.     ' Idi na sljedece polje
  13.     Me.datum.SetFocus
  14. End Sub

Pozdrav, Amela
Ovaj post je ureden 1 puta. Posljednja izmjena 18.06.2025 12:54 od strane Amelasar. ↑  ↓

#7 18.06.2025 12:58
Amelasar Van mreze
Clan
Registrovan od:07.04.2011
Postovi:337


Predmet:Re:list box za pretragu u mdb iaccdb
Access 2019 ima nesto drugacije ponasanje u vezi sa DoCmd.OpenForm ...
U kombinaciji sa vrijednostima koje mijenjate putem globalnih promenljivih (Psifra, PintFlag) i koriscenjem DLookup, forma frmKKalkulacijaDetalji na neki nacin refreshuje rekordset i gubi trenutnu poziciju

Rijeseno sa Bookmark, sacuva se trenutni zapiss i onda se vrati
Pozdrav, Amela
↑  ↓

#8 18.06.2025 13:01
Amelasar Van mreze
Clan
Registrovan od:07.04.2011
Postovi:337


Predmet:Re:list box za pretragu u mdb iaccdb
Evo 2019 primjer

Prilozi:
Informacije o tipu datoteke za:rar  2019accdb.rar
Preuzimanja:1
Velicina datoteke:140.40 KB


Pozdrav, Amela
↑  ↓

#9 18.06.2025 17:48
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,699


Predmet:Re:list box za pretragu u mdb iaccdb
treblo bi u svaki modul na vrhu ispod koda
Option Compare Database
dodati jos
option explicit

to znaci da su variable explicitne onosno da ime variable mora biti dimenzionisano
to je dobro da nebi uduplao variable negdje pa podaci nece biti dobri

ovo ispod kopirati u funkciju koja se zove funkcije

PreuzmiIzvorni kôd (Visual Basic):
  1. Type proizvodi
  2. ime As String
  3. jedmj As String
  4. nabavna As String
  5. cijena As String
  6. tarifa As Integer
  7. znak As String
  8. pdv As String
  9. datum As Date
  10. vrsta As String
  11. sifra As Integer
  12. broj As Integer
  13. proizvod As String
  14. End Type
  15. Function SqlDecimal(v As Variant) As String
  16.     SqlDecimal = Replace(Format(Nz(v, 0), "0.00"), ",", ".")
  17. End Function

Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#10 18.06.2025 17:54
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,699


Predmet:Re:list box za pretragu u mdb iaccdb
sledeci kod se nalazi frmKKalkulacijaDetalji na eventu on key down polja proizvod

ovo ispod trebas prekopirati umjesto tvoga koda na ovom eventu
na vrhu u modulu ispod
Option Compare Database
postavi
Dim rs_prooizvod As DAO.Recordset
mozes ovo staviti i u event ako nigdje vise neces koristiti
ecent Private Sub proizvod_AfterUpdate() mozes pobrisati netreba
svoj event zamijeni sledecim kodom
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub proizvod_KeyDown(KeyCode As Integer, Shift As Integer)
  2. Me.KeyPreview = True
  3. Select Case KeyCode
  4. Case vbKeyF4
  5.   Me.KeyPreview = True
  6.   DoCmd.SetWarnings False
  7. DoCmd.RunSQL "SELECT tblProizvodi.proizvod, tblProizvodi.ime, tblProizvodi.nabavna, tblProizvodi.cijena, tblProizvodi.znak, Len([proizvod]) AS [Int], tblProizvodi.jedmj INTO tblProizvodInt FROM tblProizvodi WHERE (((tblProizvodi.znak)='K') AND ((Len([proizvod]))=4)) ORDER BY tblProizvodi.ime WITH OWNERACCESS OPTION;"
  8. DoCmd.RunSQL "SELECT Count(tblProizvodInt.proizvod) AS CountOfproizvod, Max(tblProizvodInt.proizvod) AS MaxOfproizvod INTO tblProizvodMax FROM tblProizvodInt;"
  9. DoCmd.OpenForm "frmZadnjiInterni", acNormal, , , acFormReadOnly
  10.              ' SendKeys "{ESC}", True
  11.                      KeyCode = 0
  12. ''PintFlag = 0
  13. 'DoCmd.OpenForm "frmZadnjiInterni", acNormal, , , , acDialog
  14. '   SendKeys "{ESC}{ESC}"
  15. ''If PintFlag = 1 Then
  16. '  ' Me.proizvod = Pproizvod
  17. '                   '  Call proizvod_AfterUpdate
  18. '                       ' DoCmd.RunCommand acCmdSaveRecord
  19. '                ' Me.proizvod.SetFocus
  20. ''End If
  21. Case vbKeyF5
  22. PintFlag = 0
  23. DoCmd.OpenForm "frmProizvodPretragaK", acNormal, , , , acDialog
  24. If PintFlag = 1 Then
  25.    
  26.    'DoCmd.GoToRecord , , acNewRec
  27.   'Me.proizvod = Pproizvod
  28.                     'Call proizvod_AfterUpdate
  29.    Dim SQL As String
  30.     Dim proizvodk As proizvodi
  31.     SQL = "SELECT ime,jedmj,nabavna,cijena,tarifa,znak from tblProizvodi " _
  32.             & "WHERE proizvod='" & Pproizvod & "'"
  33.     Set rs_prooizvod = CurrentDb.OpenRecordset(SQL, dbOpenSnapshot)
  34.     If Not rs_prooizvod.EOF Then
  35.     proizvodk.ime = rs_prooizvod!ime
  36.     proizvodk.jedmj = rs_prooizvod!jedmj
  37.     proizvodk.nabavna = SqlDecimal(rs_prooizvod!nabavna)
  38.     proizvodk.cijena = SqlDecimal(rs_prooizvod!cijena)
  39.     proizvodk.tarifa = rs_prooizvod!tarifa
  40.     proizvodk.znak = rs_prooizvod!znak
  41. Else
  42.     MsgBox "Nema podataka za proizvod: " & Pproizvod
  43. End If
  44.  
  45. rs_prooizvod.Close
  46.     proizvodk.proizvod = Pproizvod
  47.     proizvodk.datum = Date
  48.     proizvodk.vrsta = Parent!vrsta
  49.     proizvodk.sifra = Parent!sifra
  50.     proizvodk.broj = Parent!broj
  51.     proizvodk.pdv = SqlDecimal(DLookup("pdv", "tbltarife", "tarifa = '" & Me.tarifa & "'"))
  52.     SQL = "INSERT INTO tblDetalji (broj,proizvod,Ime, jedmj, nabavna,cijena," _
  53.        & "tarifa,znak,pdv,datum,vrsta,kulaz,rabat,zavisni,sifra)" _
  54.        & "VALUES (" & _
  55.       proizvodk.broj & ", " & _
  56.       "'" & Pproizvod & "', " & _
  57.       "'" & proizvodk.ime & "', " & _
  58.       "'" & proizvodk.jedmj & "', " & _
  59.       proizvodk.nabavna & ", " & _
  60.       proizvodk.cijena & ", " & _
  61.       "'" & proizvodk.tarifa & "', " & _
  62.       "'" & proizvodk.znak & "', " & _
  63.       Nz(proizvodk.pdv, 0) & ", " & _
  64.       "#" & Format(proizvodk.datum, "yyyy-mm-dd") & "#, " & _
  65.       "'" & proizvodk.vrsta & "', " & _
  66.       "" & 0# & ", " & _
  67.       "" & 0# & ", " & _
  68.       "" & 0# & ", " & _
  69.       sifra & ")"
  70. 'Forms![F]![T] = SQL
  71. CurrentDb.Execute SQL, dbFailOnError
  72. Me.Refresh
  73. KeyCode = 0
  74. Me.RecordSource = Me.RecordSource
  75. If Forms!frmKKalkulacija!frmKKalkulacijaDetalji.Form.Recordset.RecordCount > 1 Then
  76. Forms!frmKKalkulacija!frmKKalkulacijaDetalji.Form.Recordset.MoveLast
  77. End If
  78. Me.kulaz.SetFocus
  79. End If
  80.           Case vbKeyF6
  81.     DoCmd.OpenForm "frmStanjePr", acNormal, , , , acDialog, Me.proizvod
  82.                        Sendkeys "{Esc}", True
  83.                       KeyCode = 0
  84.                       End Select
  85. End Sub

Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 18.06.2025 20:16 od strane zxz. ↑  ↓

Stranice (2):1,2


Sva vremena su GMT +02:00. Trenutno vrijeme: 8: 35 am.