Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Access Baza Znanja

[es] :: Access :: Access Baza Znanja

Strane: < .. 1 2 3

[ Pregleda: 30075 | Odgovora: 47 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

TomaParComp
Goran Tomic
Paraćin

Član broj: 17923
Poruke: 118
194.106.174.*

Sajt: www.parcomp.co.yu


Profil

icon Re: Access Baza Znanja21.10.2007. u 20:13
Citat:
Zidar: Zeljko Raspudic, o stampanju na matricnim stampacima :-)


Citat:
Svima nama koji se bavimo programiranjem je jasno da dolaskom Windows
orjentisanih programa dolazi do "tihe" sahrane matričnih štampača.
Kome ipak nije jasno neka oštampa neki izvještaj iz, recimo, Access-a i
poredi brzinu štampanja izvještaja slične dužine iz nekog DOS programa
(recimo Clipper-a). Posto su matrični štampači jako rasprostranjeni u
poslovima vezanim za knjigovodstvo nije tek tako preći na lasere.
Problem pogotovo dolazi do izražaja kod referata koji zbog obimnosti
podataka moraju da koriste A3 papir (recimo neke liste u Osnovnim
sredstvima). Tu nije lako preći na A3 laser koji je i dalje dosta skup
a takođe i toneri za njega.
Zbog toga sam prešao na "DOS" stampanje iz Access-a ali sam naišao
na problem kod prelaska na novu stranicu (Form Feed).
Koristeći zvaničnu ESC sekvencu za prelaz na novu stranu tj. Chr(12)
nalazio sam na problem da zavisno od situacije nekada nedostaje
jedan do dva reda a nekada doda red više. Kao posljedica toga je
pogrešno štampanje višestraničnih dokumenata i pogrešan rad
Tear Off-a (izvuče stranicu više).
Printer je hardverski dobro podesen jer njegovo dugme Form Feed i Tear Off
rade normalno.
Koristim "beskonačni" papir i probao sam na LQ-1170 i LX 300 sa identicnim
rezultatima
Logiku greške nisam uspio da dokučim.
Poslije dosta muke napustio sam Chr(12) i problem riješio na sljedeći
način:


Imam primedbe na gore postovano uputstvo...

Meni se mnogo bolje pokazala kombinacija:

Code:

        cImeFajla = getTmpName()

        Set fs = CreateObject("Scripting.FileSystemObject")

        Set fileRacun = fs.CreateTextFile(cImeFajla, True)
        ...
        ...
        cRed = " << tekst koji ide na štampu >> "
        fileRacun.WriteLine (cRed)
        nRed = nRed + 1
        ...
        ...

        fileRacun.Write (Chr(12))
            
        fileRacun.Close

        cPort = "PRN"
        fs.CopyFile cImeFajla, cPort
        fs.DeleteFile cImeFajla


Obratiti pažnju na razliku izmedju Write i WriteLine, tu uvek nastaje problem sa FF kodom jer WriteLine kao i gornji Print #1, dodaje na kraju linije CRLF što pravi problem sa pozicioniranjem na strani jer printer prvo predje na drugu stranu(FF) pa onda napravi još jedan(CRLF) red što poremeti pozicioniranje.

Najbolje bi bilo da FF ide NA KRAJU ZADNJEG REDA i to:
Code:

        fileRacun.Write (" <<< zadnji red izveštaja >>> "  & Chr(12))

i to onda radi 1000%


21.10.2007. u 20:13 

bojan_mil
Bg

Član broj: 74014
Poruke: 91
77.46.180.*



Profil

icon Re: Access Baza Znanja19.02.2008. u 22:11
Resenja za blokiranje funkcija toolbar-a i file menu-a u access-u

I
Tools, Startup. Pogledaj opcije koje se nude. Kad isključiš te opcije, a želiš normalno da uđeš u aplikaciju pod standardnim uslovima, uradiš to uz držanje tastera Shift. To je jedne od opcija za sprečavanje mogućnosti namernog ili nenamernog ugrožavanja aplikacije i podataka. Reklo bi se da je dobra. Nije ijedina.


II
Public Sub UnlockDB()
CurrentDb.Properties("AllowFullMenus") = True
CurrentDb.Properties("AllowBuiltInToolbars") = True
CurrentDb.Properties("AllowShortcutMenus") = True
CurrentDb.Properties("AllowSpecialKeys") = True
End Sub

Public Sub LockDB()
CurrentDb.Properties("AllowShortcutMenus") = False
CurrentDb.Properties("AllowFullMenus") = False
CurrentDb.Properties("AllowBuiltInToolbars") = False
CurrentDb.Properties("AllowSpecialKeys") = False
End Sub

Efekti će biti vidljivi tek kada se baza ponovo otvori. Možeš ovo spakovati u jednu proceduru, koristeći argument tipa boolean.


III
DoCmd.ShowToolbar "Menu bar", acToolbarNo
DoCmd.ShowToolbar "Form Design", acToolbarNo
DoCmd.ShowToolbar "Form View", acToolbarNo
DoCmd.ShowToolbar "Database", acToolbarNo
DoCmd.ShowToolbar "Formatting (Form/Report)", acToolbarNo
DoCmd.ShowToolbar "Formatting (Datasheet)", acToolbarNo



DoCmd.ShowToolbar "Menu bar", acToolbarYes

....naravno da ga opet prikaže






IV
Public Sub RegEditDB (MakeVisible As Boolean)

' Instant zakljucavanje / otkljucavanje menija
Dim AST As AcShowToolbar
AST = IIf(MakeVisible, AcToolbarYes, AcToolbarNo)
DoCmd.ShowToolbar "Menu bar", AST
DoCmd.ShowToolbar "Form Design", AST
DoCmd.ShowToolbar "Form View", AST
DoCmd.ShowToolbar "Database", AST
DoCmd.ShowToolbar "Formatting (Form/Report)", AST
DoCmd.ShowToolbar "Formatting (Datasheet)", AST

' Zahteva restart
CurrentDb.Properties("AllowBuiltInToolbars") = MakeVisible
CurrentDb.Properties("AllowShortcutMenus") = MakeVisible
CurrentDb.Properties("AllowSpecialKeys") = MakeVisible

End Sub
19.02.2008. u 22:11 

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 2036
*.100.46-69.q9.net.



Profil

icon Re: Access Baza Znanja10.04.2008. u 14:46
Zaokruzivanje Brojeva na proizvoljnu vrednost (ne samo na zadati broj decimala).

Na primer, zelite da zaokruzite nesto na najblizih 5 ili 25. Ili na najblizi Inch. Ili na nalblizih 15 minuta (0.25 od sata)
A mozete da zaokruzite na gore i na dole, na bilo koji inkrement.

Evo funkcija:

Code:

Public Function Round_Z(X As Variant, U As Variant) As Variant
'Namena: zaokruzuje brojeve na bilo koju jedinicu mere
'jedinica mere moze biti decimalna ali i 'najblizih 2 cm', najblizih 15 minuta,
'bilo sta
'Iz ove funkcije izvode se i druge dve RoundUp_Z i RoundDown_Z, koje
'zaokruzju na prvu vecu ili manju okruglu vrednost jedinice mere
'Primeri:
'Zaokruzi na jednu decimalu:
'Print Round_Z(0.12345, 0.1)
' 0.1
'Zaokruzi na 3 decimale:
'Print Round_Z(0.12355, 0.001)
' 0.124
'Zaokruzi an 5 decimala:
'Print Round_Z(0.12355, 0.00001)
' 0.12355
'Zaokruzi na ceo broj
'Print Round_Z(12355.6355, 1)
'12356
'Zaokruzi na najblizi paran broj (2)
'Print Round_Z(12355.12355, 2)
'12356
'Zaokruzi na najblizi broj deljiv sa 3:
'Print Round_Z(12355.12355, 3)
'12354
'Na najblizu stotinu:
'Print Round_Z(12355.12355, 100)
'12400
'Na najblizih 0.25:
'Print Round_Z(12355.12355, 0.25)
'12355
'Print Round_Z(12355.26355, 0.25)
' 12355.25

Round_Z = Int((X + U / 2) / U) * U


End Function

Function RoundUp_Z(X As Variant, U As Variant) As Variant
'Zaokruzuje zadati broj X na prvi umnozak od U koji je veci od X
'Primeri:
'Zaokruzi na prvi veci broj deljiv sa 5
'? RoundUp_Z(12.015,5)
'15
'
RoundUp_Z = Round_Z(X + U / 2, U)
End Function

Function RoundDown_Z(X As Variant, U As Variant) As Variant
'Zaokruzuje zadati broj X na prvu manju jedinicu U
'Primeri:
'Zaokruzi na prvi manji broj deljiv sa 5
'Print RoundDown_Z(37, 5)
'35
RoundDown_Z = Round_Z(X - U / 2, U)
End Function

10.04.2008. u 14:46 

Getsbi
Miroljub Zahorjanski
Vršac

Moderator
Član broj: 124608
Poruke: 1563
79.101.227.*



Profil

icon Re: Access Baza Znanja29.07.2008. u 20:15
Kolega domaci_a_nas je dao kod na temu, kako isčitati sve postojeće diskove u kompjuteru.
Code:
Public Sub ShowDrives()
    Dim fso As Object
    Set fso = CreateObject("scripting.FileSystemObject")
    Dim drv, d, strText
    
    Set drv = fso.Drives
    
    For Each d In drv
        Select Case d.DriveType
            Case 0: strText = "Nepoznato   - "
            Case 1: strText = "Floppy      - "
            Case 2: strText = "HDD         - "
            Case 3: strText = "Mrezni disk - "
            Case 4: strText = "CD-ROM      - "
            Case 5: strText = "RAM Disk    - "
        End Select
        strText = strText & d.DriveLetter & ": "
        If d.isready Then strText = strText & d.volumeName
        Debug.Print strText
    Next d
    
    Set fso = Nothing
End Sub

I'll know what I want, when I see it.
29.07.2008. u 20:15 

Getsbi
Miroljub Zahorjanski
Vršac

Moderator
Član broj: 124608
Poruke: 1563
93.86.38.*



Profil

icon Re: Access Baza Znanja28.08.2008. u 11:17
Još jedna funkcija za prikaz broja slovima. Autor je kolega goranvuc.
Code:
'****************************************************************************
'                 FUNKCIJA ZA PRETVARANJE BROJA U TEKST
'****************************************************************************
Private varCifreJedinice As Variant
Private varCifreDoDvadeset As Variant
Private varCifreDesetice As Variant
Private varCifreStotine As Variant

Public Function PretvoriBrojUTekst(ByVal dblUlazniBroj As Double) As String
   Dim strCifra As String
   Dim intDuzinaCifre As Integer
   Dim intBrojTrojki As Integer
   Dim intOstatak As Integer
   Dim intBrojac As Integer
   Dim strMINUS As String
   
   varCifreJedinice = Array("", "jedan", "dva", "tri", "èetiri", "pet", _
                             "šest", "sedam", "osam", "devet")
   
   varCifreDoDvadeset = Array("deset", "jedanaest", "dvanaest", "trinaest", _
                             "èetrnaest", "petnaest", "šesnaest", "sedamnaest", "osamnaest", "devetnaest")
   
   varCifreDesetice = Array("", "", "dvadeset", "trideset", "èetrdeset", _
                             "pedeset", "šezdeset", "sedamdeset", "osamdeset", "devedeset")
   
   varCifreStotine = Array("", "sto", "dvesto", "tristo", "èetirsto", "petsto", _
                            "šesto", "sedamsto", "osamsto", "devetsto")
   
   If dblUlazniBroj < 0 Then
      strMINUS = "-"
      dblUlazniBroj = Abs(dblUlazniBroj)
   End If
   
   PretvoriBrojUTekst = ""
   strCifra = Format(dblUlazniBroj, "###################.00")
   strCifra = Left(strCifra, Len(strCifra) - 3)
   intDuzinaCifre = Len(strCifra)
   intOstatak = intDuzinaCifre Mod 3
   intBrojTrojki = (intDuzinaCifre / 3) - ((intDuzinaCifre Mod 3) / 3)
   
   If dblUlazniBroj < 1000000000000# Then
       If intOstatak > 0 Then
           PretvoriBrojUTekst = OdrediTekstPodcifre(Left(strCifra, intOstatak), intBrojTrojki)
           strCifra = Right(strCifra, Len(strCifra) - intOstatak)
       End If
       For intBrojac = intBrojTrojki To 0 Step -1
           PretvoriBrojUTekst = PretvoriBrojUTekst & OdrediTekstPodcifre(Left(strCifra, 3), intBrojac - 1)
           If Len(strCifra) > 3 Then
               strCifra = Right(strCifra, Len(strCifra) - 3)
           End If
       Next
   Else
   End If
   
   strCifra = Format(dblUlazniBroj, "###################.00")
   strCifra = Right(strCifra, 2)
   
   If Len(PretvoriBrojUTekst) > 0 Then
       'PretvoriBrojUTekst = UCase(Left(PretvoriBrojUTekst, 1)) & Right(PretvoriBrojUTekst, Len(PretvoriBrojUTekst) - 1)
       If (Right(PretvoriBrojUTekst, 5) = "Jedan") Or (Right(PretvoriBrojUTekst, 5) = "jedan") Then
           PretvoriBrojUTekst = PretvoriBrojUTekst & " " & strCifra & "/100."
       Else
           PretvoriBrojUTekst = PretvoriBrojUTekst & " " & strCifra & "/100."
       End If
   End If
End Function

Private Function OdrediTekstPodcifre(ByVal strPodcifra As String, _
                                     intVelicina As Integer) As String
   
   Dim strTekst As String
   
   OdrediTekstPodcifre = ""
   
   If Val(strPodcifra) <> 0 Then
       strTekst = OdrediTekst(strPodcifra)
       
       Select Case intVelicina
           Case 0
           
               OdrediTekstPodcifre = strTekst
               
           Case 1
               
               'Slucaj za 11000,12000,13000,14000
               If strPodcifra = "11" Or strPodcifra = "12" Or strPodcifra = "13" Or strPodcifra = "14" Then
                  
                  OdrediTekstPodcifre = strTekst
                  OdrediTekstPodcifre = OdrediTekstPodcifre & "hiljada"
               
               Else
                  
                  'korekcija za slucaj za 2000, 22000, 32000 ....
                  If Right(strPodcifra, 1) = "2" Then
                     OdrediTekstPodcifre = Left(strTekst, Len(strTekst) - 1) & "e"
                  Else
                     OdrediTekstPodcifre = strTekst
                  End If
               
                  Select Case Right(strPodcifra, 1)
                     'Slucaj za 21000, 31000 ....
                     Case "1"
                        OdrediTekstPodcifre = Left(OdrediTekstPodcifre, Len(OdrediTekstPodcifre) - 2) & "nahiljada"
                     Case "2", "3", "4"
                        OdrediTekstPodcifre = OdrediTekstPodcifre & "hiljade"
                     Case Else
                        OdrediTekstPodcifre = OdrediTekstPodcifre & "hiljada"
                  End Select
               
                  'Slucaj za 1000
                  If Val(strPodcifra) = 1 Then
                     OdrediTekstPodcifre = "hiljadu"
                  End If
                  
               End If
           Case 2
               OdrediTekstPodcifre = strTekst & "miliona"
               If Val(strPodcifra) = 1 Then
                   OdrediTekstPodcifre = "milion"
               End If
           Case 3
               If Val(strPodcifra) = 1 Then
                   OdrediTekstPodcifre = "milijardu"
                   Exit Function
               End If
               If Val(Right(strPodcifra, 2)) > 5 And Val(Right(strPodcifra, 2)) < 21 Then
                   OdrediTekstPodcifre = strTekst & "milijardi"
                   Exit Function
               End If
               If Right(strPodcifra, 1) = "2" Then
                   OdrediTekstPodcifre = Left(strTekst, Len(strTekst) - 1) & "e"
               Else
                   OdrediTekstPodcifre = strTekst
               End If
               Select Case Right(strPodcifra, 1)
                   Case "1"
                       OdrediTekstPodcifre = Left(OdrediTekstPodcifre, Len(OdrediTekstPodcifre) - 2) & "namilijarda"
                   Case "2", "3", "4"
                       OdrediTekstPodcifre = OdrediTekstPodcifre & "milijarde"
                   Case Else
                       OdrediTekstPodcifre = OdrediTekstPodcifre & "milijardi"
               End Select
               If Val(strPodcifra) = 1 Then
                   OdrediTekstPodcifre = "milijardu"
               End If
       End Select
   End If
End Function

Private Function OdrediTekstDoSto(strPodcifra As String) As String
   OdrediTekstDoSto = ""
   
   Select Case Val(strPodcifra)
       Case 1 To 9
           OdrediTekstDoSto = varCifreJedinice(Val(strPodcifra))
       Case 10 To 19
           OdrediTekstDoSto = varCifreDoDvadeset(Val(strPodcifra) - 10)
       Case 20 To 99
           OdrediTekstDoSto = varCifreDesetice(Val(Left(strPodcifra, 1))) & varCifreJedinice(Val(Right(strPodcifra, 1)))
   End Select
End Function

Private Function OdrediTekst(strPodcifra As String) As String
   OdrediTekst = ""
   Select Case Val(strPodcifra)
       Case 1 To 99
           OdrediTekst = OdrediTekstDoSto(Val(strPodcifra))
       Case 100 To 999
           OdrediTekst = varCifreStotine(Val(Left(strPodcifra, 1))) & OdrediTekstDoSto(Val(Right(strPodcifra, 2)))
   End Select
   
End Function



link ka temi: http://www.elitesecurity.org/t334772-0#2037079

I'll know what I want, when I see it.
28.08.2008. u 11:17 

Catch 22

Član broj: 148083
Poruke: 4636
79.101.198.*



Profil

icon Re: Access Baza Znanja28.08.2008. u 12:43
Rešenje problema za ispis broja slovima postoji odavno, kod je proglašen za javno vlasništvo još davne 1991!!!!!

Preuzmite mdlSlovimaBroj

Isto to, samo malo drugačje imate ovde ili Excel macro za ispis broja ćirilicom



[Ovu poruku je menjao Catch 22 dana 29.08.2008. u 12:38 GMT+1]
"Freedom's just another word for nothing' left to lose"
28.08.2008. u 12:43 

Trtko
Koprivnica

Član broj: 69494
Poruke: 501
93.159.69.*



Profil

icon Re: Access Baza Znanja10.11.2008. u 17:42
Kako prepisati formu u txt fajl

Code:


application.saveastext acForm,"Imeforme","c:\folder\nekitekst.txt"

kreiranje forme iz txt fajla

application.loadfromtext acForm,"Imeforme", "c:\folder\nekitekst.txt"


Kad ste u VB kodu uključite onaj Immediate prozor i u njemu ukucajte gornju komandu
naravno da mora postojat neka forma u bazi.
10.11.2008. u 17:42 

rstevic
Rade Stevic
Zemun

Član broj: 69135
Poruke: 108
*.vektor.net.

Sajt: www.hypo-leasing.co.yu


Profil

icon Re: Access Baza Znanja13.11.2008. u 15:22
ODBC Connection String na udaljeni SQL Server.

Najzanimljivije ovde je to da kada imate SQL Server u svojoj mrezi i u domenu samo linkovanje preko file.DSN.
Medjutim u pokusaju da se linkujete na udaljeni SQL Server, recimo neki koji se hostuje kod nekog provajdera takva konekcija jednostavno ne prolazi, svaki put kada pokusate da otvorite bazu cete, posle duzeg cekanja (pokusaj da se konekcija uspostavi) dobiti SQL prompt da ukucate Username I PASSWORD.
Niko od nas zaista ne zeli da mu svi korisnici znaju SQL Security pa je to prilicno neprihvatljivo, a i ne izgleda profesionalno.

SADA dolazi na red najzanimljiviji deo price i resenje do koga smo dosli Zidar i ja udruzenim snagama:

Najpre treba napraviti SELECT Query koji gadja tabelu direkno na SQL Serveru i to na sledeci nacin:

SELECT *
FROM Artikli "IN[ODBC;DRIVER=SQL Server;SERVER=xxx.xxx.xxx.xxx;DSN=imeDSNFile;APP = Microsoft Data Access Components;WSID=spiderman;DATABASE=mikimini;UID=patakdaca;PWD=SafetSusic;]
WHERE(((Artikli.sifra_proizvoda)=-1));

Dakle to je upit koji iz tabele Artikli na SQL Serveru ne treba nista da vrati (vidi kako je nelogican uslov), ali on je napravio konekciju i SQL Server dalje nista ne pita i nema ruznog prompta.

Na formu koja je postavljena u Database StartUp on Open staviti sledeci CODE:

DoCmd.SetWarnings False 'Iskljucuje ACCESS-ova upozorenja
DoCmd.OpenQuery "lnk" 'Startuje QUERY koji je gore naveden
DoCmd.Close 'Zatvara taj Query, jer je on aktivan u tom trenutku
DoCmd.SetWarnings True 'Vraca ACCESS-ova upozorenja

Zidar je u istoj temi dao i neki predlog sa PASS THRU QUERY ali ja to jos nisam uradio i necu nista sada da pisem o tome ali cu i to objasniti cim budem uspeo da ga nateram da radi.
13.11.2008. u 15:22 

[es] :: Access :: Access Baza Znanja

Strane: < .. 1 2 3

[ Pregleda: 30075 | Odgovora: 47 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.