[ janifer @ 01.10.2002. 14:57 ] @
Bio sam u dilemi dali da ova pitanja postavim u ovde ili u VB forumu.

Radim malu bazu podataka u access-u i naisao sam na dva probema:

1. Kreirao sam tabelu, i form sa (podacima iz tabele) Primer: Disketa, Ime i Prezime. Kljuc u tabeli sam postavio na "disketa" i stavio da ne moze da se izvrsi upis ako ime diskete vec postoji. Kada u formu unosim podatke, sve tece normalno, ali kada unesem u polje "disketa" ime koje vec postoji program mi javi Error i upozori me da zapis pod tim imenom postoji (sto je i normalno), ali mi ne izbaci podatke za IME i PREZIME. E sad je pitanje kako da namestim da mi ne javlja upozorenje nego da mi odmah izbaci podatke za ime i prezime. (Pokusao sam da postavim makro find records na on exit ali ne ide). Zna li mi ko pomoci?

2. Primer u visual basicu upisem u polj Text1.text Goran, kao glsi source Da bi na label1.caption taj zapis izgledao kao G o r a n. Znaci u polje text1.text upisem ime a ono mi se pritiskom na dugme ostampa sa razmakom izmedju slova?

[ Simke @ 01.10.2002. 21:26 ] @
Problem je u tome sto taj form sluzi za data entry. Jedno resenje je da imas poseban form za search. Drugo resenje je da radis lookup na beforeupdate event-u za text box gde unosis vrednost za polje "disketa". Ako vec postoji ta verdnost u tabeli, mozes da pokazes recimo message box sa detaljima i da onda cancel update. Jedini problem sa ovim je sto bi morao svaki put da radis lookup, sto moze malo da uspori stvari. Ili se malo poigraj sa error handler-om, koji ce onda umesto default error poruke da izbaci detalje u msg box-u. Ovo bi radilo dosta brze.

Za problem 2, koristi Len funkciju da dobijes duzinu stringa. Koristi Left funkciju da dobijes prvi karakter, koji zatim stavis u novi string, pa onda stavis " " iza tog karaktera. Onda koristi Right funkciju gde ces poziciju svaku pit smanjivati za 1, da dobijes string bes karaktera koji si upravo procitao. Verovatno postoji neko elegantnije resenje, ovo sam sad na brzinu smislio, nebi bilo lose da procitas u help-u malo o funkcijama koje rade sa stringovima.
[ janifer @ 08.10.2002. 15:28 ] @
Zahvaljujuci predhodnom odgovoru, uspeo sam da sredim aplikaciju. Sada me zanima dali postoji program (i koji) da MDB datoteku kompajlira u exe fajl, da bi mogao da "program" koristim bez instaliranog access-a.

[ Simke @ 09.10.2002. 00:43 ] @
Nazalost, access databaze ne mozes da pretvoris u .exe.
Ako ne zelis da instaliras ceo office/access, mozes da instaliras samo run-time verziju access-a. Ima je na ms office developer edition.
[ janifer @ 11.10.2002. 18:35 ] @
1. Na formu sam stavio dugme Delete record. Ono funkcionise normalno stim sto se pojavi upozorenje na engleskom "Dali sam siguran da brisem records" ako kliknem Yes brise normalno, ako kliknem no pojavi mi prozor gde mi kaze da sam odustao od brisanja (isto na engleskom). E sad je pitanje na koji nacin da prepravim upozorenja na srpskom i gde, ili na kraju krajeva da se podaci brisu bez ikakvih upozorenja.
Souce izgleda ovako:

Private Sub Command97_Click()
On Error GoTo Err_Command97_Click


DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

Exit_Command97_Click:
Exit Sub

Err_Command97_Click:
MsgBox Err.Description
Resume Exit_Command97_Click

End Sub

2. Kako da na formu pretrazujem podake uz pomoc text box-a i dugmeta "Trazi", gde u evet, on clik upisem:
na primer

Dim a as string
a=Forms![IMENA]![text1]

DoCmd.FindRecord a acAnywhere, False, , True, , True

p.s. Pomognite ako mozete jer mi je stvarno hitno
[ Simke @ 11.10.2002. 23:36 ] @
1) Tools -> Options onda idi na Edit/Find tab i pod Confirm skloni Record changes i Document deletions (ovo je za Access 97, verujem da je i za ostale vrezije slicno).
Onda pre onog koda sto imas za onclick event stavi:
Dim varResponse as Variant
varResponse = msgbox("Poruka", vbQuestion+vbYesNo, "Title")
If varResponse = vbNo then
Exit Sub
End IF

2) Najbolje je da imas Main form gde ubacujes search criteria i subform koji ce da pokaze rezultate. Iza subform-a postavi upit koji uzima vrednost iz textbox-a kao criteria. Ako ti se textbox na main form zove txtMyText, onda ce criteria na odgovarajucem polju u upitu biti Like [Forms]![myForm]![txtMyText].
Onda jedina stvar koju onclick event za search dugme treba da uradi je:
Me.MySubForm.Requery

Ako hoces da pravis aplikacije u access-u, onda bih ti preporucio da uzmes neku knjigu za access development i da predjes preko nje. Access nije toliko tezak, ali ti ipak trebaju neke osnove.
[ janifer @ 16.10.2002. 02:01 ] @
Zahvaljujem Simke. Pomogo si mi mnogo, samo me jos zanima sledece:

Zasada nemam ovaj problem ali ne bezim od toga da cu ga imati.

Recimo sredim komplet aplikaciju, onda preko, Tools pa start up iskljucim sve sto se iskljuvciti moze, podesim koji form da se startuje prvo itd. E sada kada pokrenem aplikaciju pojavi mi se form koji sam podesio u start up-u i meniji za obradu podataka File, view itd. Medjutim ispostavi se da sam nesto zaboravio da dodam na nekom formu, na koji nacin mogu da editujem form ili source? (posto su svi toolbarovi iskljuceni a nemogu da ih vratim)
[ Simke @ 16.10.2002. 08:02 ] @
Drzi shift dugme prlikom otvaranja.
[ janifer @ 21.10.2002. 15:25 ] @
To je to.

Zahvaljujem puno na trudu.
[ Goran Rakić @ 21.10.2002. 15:30 ] @
A kako isključiti da Shift ne može da otvori normalan prikaz, već da imaš samo tvoj startup. I kako napraviti da se aplikacija uvek startuje kroz access runtime, iako na kompu ima Access. (zbog privilegija)
[ Simke @ 22.10.2002. 20:28 ] @
Probaj da napravis .mde file (Tools -> database utilities -> make mde file). Kao sto je objasnjeno u help-u:

If your database contains Microsoft Visual Basic code, saving your Microsoft Access database as an MDE compiles all modules, removes all editable source code, and compacts the destination database. Your Visual Basic code will continue to run, but it cannot be viewed or edited, and the size of your Access database will be reduced due to the removal of the code. Additionally, memory usage is optimized, which will improve performance.

Saving your Access database as an MDE file prevents the following actions:

Viewing, modifying, or creating forms, reports, or modules in Design view.

Adding, deleting, or changing references to object libraries or databases.

Changing code using the properties or methods of the Microsoft Access or VBA Object models — an MDE file contains no source code.

A sto se tice access run-time, trebace ti ms office developer edition. Kada napravis access aplikaciju, onda mozes da napravis installation package, koji zajedno sa tom aplikacijom spakuje access runtime i bilo koje refferences (dlls) koje su potrebne. Na kraju dobijes installer koji mozes da pokrenes i instaliras tu aplikaciju, bez obzira da li masina na kojoj instaliras ima office ili ne.