[ dejan_su @ 04.03.2012. 20:52 ] @
| Situacija je sledece:
• Imam jednu tabelu u Access bazi koja sadrzi polja Sifra artikla, Naziv artikla, Cena artikla, Stanje na lageru.
• Imam Word template koji koristim za stampu odredjenih izvestaja.
U Accessu pravim formu, koja treba da sadrzi ona 4 polja gore, s tim da kada unesim Sifru artikla i stisnem TAB, on iz baze u ostala polja povuce ostala 3 podatka.
Kada to uradim, klikom na ikonicu Stampaj, treba da ubacim ta 4 podatka u Word template i odstampam.
Koji bi bili koraci? Ono sto mi je najbitnije jeste kako da povezem Access i Word, i sta treba da ubacim u Word dokument da bi Access znao sta gde treba da ubaci.
Hvala. |
[ crnjak1 @ 05.03.2012. 00:55 ] @
Private Sub Command507_Click()
Dim strDocName As String
Dim strWhere As String
strDocName = "TVOJ NAZIV REPORTA"
strWhere = "[ID]=" & Me!ID
DoCmd.OpenReport strDocName, acPreview, , strWhere
DoCmd.Maximize
End Sub
Prilikom kreiranja reporta dokument integrisi u vidu slike i postavi samo polja koja su potrebna da se vide i to je to
naravno kod dodajes na dugme u formi iz koje pozivas report
[ FOX028 @ 05.03.2012. 05:47 ] @
a zasto bi radio na taj nacin, kad mozes taj isti Tamplate napraviti i na Report-u u Access-u.
[ crnjak1 @ 05.03.2012. 06:25 ] @
ja ne znam tako aj pojasni ako nije problem
[ FOX028 @ 05.03.2012. 06:34 ] @
Okaci taj Word template i tvoju Access bazu, pa da ti pokazem na konkretnom primeru.
[ crnjak1 @ 05.03.2012. 21:46 ] @
evo forma je unos1
[ FOX028 @ 06.03.2012. 05:54 ] @
ovo sto si okacio ja ne mogu otvoriti, u kom Access-u radio? Ja imam instaliran i 2003 i 2007, da nisi mozda radio u nekoj novijoj verziji? Konvertuj ga u 2007 pa okaci.
[ crnjak1 @ 06.03.2012. 08:52 ] @
jesam u 2010
evo u 2007
[ FOX028 @ 06.03.2012. 09:08 ] @
Ovo sto si okacio nema nikakve veze sa onim pitanjem koje si postavio na pocetku.
[ crnjak1 @ 06.03.2012. 11:12 ] @
klikni na dugme TEST ZA LISTU u formi 1 otvori bazu drzeci shift
[ FOX028 @ 06.03.2012. 12:03 ] @
Ja se onde kod tebe ne mogu snaci, evo okacicu ti jedan primer koji sam radio, nadam se da ce ti biti jasnije o cemu pricam. Ono kako si odradio izvestaj meni se ne svidja, ubacio si skeniranu sliku a moj ti je predlog da to odradis preko labela a promenljiva polja ostavis kao textbox. Prednost ovoga je sto je jasnije za stampu i fajl je manji.
[ crnjak1 @ 06.03.2012. 12:22 ] @
upravo to kao kod tebe na štampi računa jel možeš onaj moj primer prepraviti?
[ FOX028 @ 06.03.2012. 13:54 ] @
Evo odradio sam ti nesto na brzinu, mozda ce imati jos nekih detalja da se doradi.
[ srdrazic @ 06.03.2012. 16:53 ] @
Da li se ova baza "izdavanje Računa" može otvoriti nekim drugim tasterima sa Shift-om nije išlo?
Ako nije moguće interesuje me kako se radi ovakva zaštita?
[ FOX028 @ 06.03.2012. 17:21 ] @
[ srdrazic @ 06.03.2012. 17:47 ] @
Nisam uspeo naći AllowbypassKey. Na startup-u toga nema ili ga ne vidim.
[ FOX028 @ 06.03.2012. 17:54 ] @
Pa ne postoji, ovo svojstvo ne mozes podesiti u opcijama vec to moras uraditi Macro-om ili VBA-om. Imas na onom linku kako se to radi.
[ srdrazic @ 06.03.2012. 17:57 ] @
Kada pravim macro šta izabrati iz one padajuće liste?
Kada nalepim onaj VBA code kome ili čemu treba pridružiti [event procedure]?
Stvarno sam se izgubio
[ FOX028 @ 06.03.2012. 18:26 ] @
Pa najbolje ti je da ovo radis u VBA editoru, napravis novi Modul i u njemu nalepis kod sa onog linka i iz VBA editora pokrenes proceduru pokrenes proceduru
Code: Sub SetBypassProperty()
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, False
End Sub
zatim napravis MDE ako je Access 2003 ili ACDE ako je u pitanju Access 2007 fajl. Ali pre nego sto bilo sta od ovoga uradis napravi rezervnu kopiju svoje baze u kojoj pokusavas da ovo odradis.
Nadam se da je sada jasnije.
[ srdrazic @ 06.03.2012. 19:11 ] @
Pokušao, ne znam,ne ide.
Evo baza u kojoj sam zalepio onaj Code, opet ga otvorim sa Shift.
Kada pravim MDE ili onaj ACDE u access2007 nekad prođe a nekad javi grešku , kao imam previše tabela i baza je prevelika, a baza ima 5-6 tabela praznih.
Malo sam dosadan ali eto.
[ FOX028 @ 06.03.2012. 19:22 ] @
Kod mene sve funkcionise, imas jos jednu opciju koju bi trebalo da podesis, mozda zbog toga nije htelo kod tebe da radi. U Access Options=>Curent Database i cekiras Compact on close.
Evo doradio sam malo onaj tvoj primer, dodao sam jos jednu formu BlokirajShift sa jednim dugmetom na koje kada kliknes blokiras Shift prilikom ulaska. Znaci samo kliknes na to dugme i onda zatvoris bazu ili napravis MDE fajl.
Ovu bazu koju sam ti okacio otvori je sa Shift pa onda idi na formu BlokirajShift.
[Ovu poruku je menjao FOX028 dana 06.03.2012. u 20:39 GMT+1]
[ crnjak1 @ 06.03.2012. 20:18 ] @
kako zastiti accdb format ja imam problem nece da mi kreira accde izbacuje mi gresku stalno
[ srdrazic @ 06.03.2012. 20:35 ] @
FOX , hvala, sve radi kako treba
[ FOX028 @ 06.03.2012. 20:43 ] @
Ako imas neki kod u VBA editoru moras ga kompajlirati (Debug=>Compile) i fajl koji kreiras u MDE mora ti biti u Access 2007 verziji ako ka kreiras iz Access 2007 ili u 2003 verziji ako ga kreiras u Access 2003. Ako i pored ovoga ne bude uspelo okaci fajl pa da vidimo u cemu je problem.
[ crnjak1 @ 07.03.2012. 08:30 ] @
Sada radi sve OK imao sam jednu gresku u kodu sada sam ispravio i fercera kao ludo
mnogo hvala FOX
zanima me jesi li uspeo da prebacis bazu na SQL server i kako definisati jednu konekciju za sve?
meni kod kuce radi sve OK ali na poslu imam problem sa odbc drajverom jednostavno nece da mi se nakaci na server u pitanju je sql 2005 i win7 64bit isto tako je kod moje kuce.
[ FOX028 @ 07.03.2012. 08:36 ] @
Nisam to nikad radio, da kacim bazu na server mozda se nadje neko ko je to vec radio pa odgovori na tvoje pitanje.
[ srdrazic @ 15.06.2012. 08:17 ] @
Znači li to da kada se postavi ovaj code za blokiranje shift-a neću biti u mogućnosti da uđem u access tabele, forme, report itd.
Šta recimo, pokvari se aplikacija, kako ću da je popravim?
[ FOX028 @ 15.06.2012. 08:37 ] @
Upravo tako, ali mozes napraviti dugme kojim mozes blokirati ili deblokirati Shift. Ako radis u Access 2007 iako je blokiran Shift mozes pristupiti celoj bazi.
[ srdrazic @ 15.06.2012. 10:35 ] @
Radim u access2007 ali sam aplikaciju pravio za access2003. Ne znam za taj code deblokiranja shifta.
Usput da pitam, nisam mogao napraviti niti mde ni accde, prijavljuje mi grešku nekog tipa kao previše formi , makroa itd..
ili je problem što sam aplikaciju pravio u 2007 za 2003?
[ FOX028 @ 15.06.2012. 10:48 ] @
Na ovom linku imas o tome
http://support.microsoft.com/kb/826765
Kao prvo MDE fajl mozes napraviti iz Access 2003 a ACCDE iz Access 2007, ali pre nego to sto odradis potrebno je da kompajliras VBA kodove (ako ih imas), pa ako to prodje bez problema mocices da napravis MDE/ACCDE fajl.
[ srdrazic @ 15.06.2012. 11:18 ] @
U pravu si za mde, kada sam uradio compile nedostajao mi je jedan end if, kada sam to ispravio napravio sam MDE bez problema.
Zahvaljujem.
[ SLOJ.1973 @ 15.06.2012. 11:58 ] @
Na login formu postavis komandno dugme,pod nazivom recimo u ovom slucaju bIskljuciShift i dodelis mu na dogadjaj OnClick sledeci kod
Code: Private Sub bIskljuciShift_Click()
On Error GoTo Err_bIskljuciShift_Click
Dim strInput As String
Dim strMsg As String
Beep
strMsg = "Zelite li omoguciti SHIFT key?" & vbCrLf & vbLf & _
"Molimo Vas upisite sifru za omogucivanje SHIFT key-a."
strInput = InputBox(Prompt:=strMsg, Title:="Shift key nije omogucen")
If strInput = "1111" Then 'neka tvoja sifra
SetProperties "AllowBypassKey", dbBoolean, True
Beep
MsgBox "Shift key je ukljucen." & vbCrLf & vbLf & _
"Sledeci put kad budete otvarali vasu bazu Shift key ce biti omogucen.", _
vbInformation, "Set Startup Properties"
Else
Beep
SetProperties "AllowBypassKey", dbBoolean, False
MsgBox "Sifra nije prihvacena!" & vbCrLf & vbLf & _
"Shift key je onemogucen." & vbCrLf & vbLf & _
"Sledeci put kad budete otvarali bazu Shift key ce biti onemogucen.", _
vbCritical, "Netacna sifra"
Exit Sub
End If
Exit_bIskljuciShift_Click:
Exit Sub
Err_bIskljuciShift_Click:
MsgBox "bIskljuciShift_Click", Err.Number, Err.Description
Resume Exit_bIskljuciShift_Click
End Sub .Klikom na njega namerno upises pogresnu sifru i shift je onemogucen.Kad zelis da omogucis shift kliknes i ukucas pravu sifru i to je to.Kod za iskljucivanje postavis u novi modul:
Code: Public Function SetProperties(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
On Error GoTo Err_SetProperties
Dim Db As DAO.Database, prp As DAO.Property
Set Db = CurrentDb
Db.Properties(strPropName) = varPropValue
SetProperties = True
Set Db = Nothing
Exit_SetProperties:
Exit Function
Err_SetProperties:
If Err = 3270 Then
Set prp = Db.CreateProperty(strPropName, varPropType, varPropValue)
Db.Properties.Append prp
Resume Next
Else
SetProperties = False
MsgBox "SetProperties", Err.Number, Err.Description
Resume Exit_SetProperties
End If
End Function
[ FOX028 @ 15.06.2012. 12:03 ] @
ali dzaba to za Access 2007, mozes kodom da blokiras Shift ali iako je blokiran moze da se pristupi Navigacionom panou i tabelama
[ SLOJ.1973 @ 15.06.2012. 14:18 ] @
Moguce,ne radim u 2007-ci.A zar se ne moze tabelama pristupiti i kada je baza u mde ili accde formatu?!
[ srdrazic @ 16.06.2012. 17:29 ] @
Našao sam jedan code za ispravljanje malog u veliko slovo.Kada na nekom imenu i prezimenu, kaje se nalaze u jednom polju greškom upišemo mala slova. To radi OK.
Međutim kada pišem naša slova č , ć samo piše c dok to dobro radi sa Š i Ž.
code:
Private Sub txtBoxName_AfterUpdate()
Me.txtBoxName.Value = StrConv(Me.txtBoxName.Value, vbProperCase)
End Sub
Šta bi mogao biti problem, sumnjam na VBA?
[ FOX028 @ 16.06.2012. 20:15 ] @
pokusaj sa ovim kodom
Code: Private Sub txtBoxName_AfterUpdate()
Dim strIme As String
Dim strPrezime As String
Dim strImePrezime As String
Dim Razmak As Integer
Dim i As Integer
strImePrezime = Trim(Nz(Me.txtBoxName, ""))
For i = 1 To Len(strImePrezime)
If Mid(strImePrezime, i, 1) = " " Then
Razmak = i
Exit For
End If
Next i
strIme = Trim(Left(strImePrezime, i))
strPrezime = Trim(Mid(strImePrezime, i, Len(strImePrezime) - Len(strIme)))
strIme = UCase(Left(strIme, 1)) & Right(strIme, Len(strIme) - 1)
strPrezime = UCase(Left(strPrezime, 1)) & Right(strPrezime, Len(strPrezime) - 1)
Me.txtBoxName = strIme & " " & strPrezime
End Sub
kod mene ovaj kod radi kako treba, i sa cirilicom i sa latinicom
[ srdrazic @ 16.06.2012. 20:43 ] @
Da to je pravi code, radi i kod mene.
Hvala
[ srdrazic @ 18.06.2012. 08:46 ] @
Naišao sam na jedan problem kod izvršavanja ovog koda, naime ako sam pogrešio recimo u polju ime prezime i kada ga izbrišem a onda napustim to polje znači ostane prazno podiže se popup end ili debug, a onda nesmetano se otvara prozor u VBA.
Meni to nije problem da zatvorim prozor i nastavim dalje ali ako sam ga zapakovao kao MDE i dao ga nekom početniku da unosi podatke svakako će se uplašiti i slučajno čeprkati po code-u i oštetiti aplikaciju.
Možda bi trebalo dodati nešto:
else
if poljeimeprezime= null then
ili tako nešto nisam baš vešt u VBA
Bar kod mene se pojavljuje greška?
[ FOX028 @ 18.06.2012. 09:08 ] @
Evo ispravljenog kod
Code: Private Sub txtBoxName_AfterUpdate()
Dim strIme As String
Dim strPrezime As String
Dim strImePrezime As String
Dim Razmak As Integer
Dim i As Integer
strImePrezime = Trim(Nz(Me.txtBoxName, ""))
For i = 1 To Len(strImePrezime)
If Mid(strImePrezime, i, 1) = " " Then
Razmak = i
Exit For
End If
Next i
strIme = Trim(Left(strImePrezime, i))
strPrezime = Trim(Mid(strImePrezime, i, Len(strImePrezime) - Len(strIme)))
'dodaj ovaj red, u slucaju da je polje prazno ili sadrzi jednu rec procedura se prekida
If strIme = "" Or strPrezime = "" Then: Exit Sub
strIme = UCase(Left(strIme, 1)) & Right(strIme, Len(strIme) - 1)
strPrezime = UCase(Left(strPrezime, 1)) & Right(strPrezime, Len(strPrezime) - 1)
Me.txtBoxName = strIme & " " & strPrezime
End Sub
[ srdrazic @ 18.06.2012. 09:14 ] @
Da sada je OK.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|