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

Access Baza Znanja

[es] :: Access :: Access Baza Znanja
(TOP topic, by Getsbi)
Strane: < .. 1 2 3 4 5

[ Pregleda: 93452 | Odgovora: 82 ] > FB > Twit

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 - pre 200 meseci
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%


 
Odgovor na temu

bojan_mil
Bg

Član broj: 74014
Poruke: 100
77.46.180.*



Profil

icon Re: Access Baza Znanja19.02.2008. u 22:11 - pre 196 meseci
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
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: Access Baza Znanja10.04.2008. u 14:46 - pre 195 meseci
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

 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Access Baza Znanja29.07.2008. u 20:15 - pre 191 meseci
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

 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Access Baza Znanja28.08.2008. u 11:17 - pre 190 meseci
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

 
Odgovor na temu

Catch 22

Član broj: 148083
Poruke: 6176
79.101.198.*



+21 Profil

icon Re: Access Baza Znanja28.08.2008. u 12:43 - pre 190 meseci
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]
 
Odgovor na temu

Trtko
Koprivnica

Član broj: 69494
Poruke: 695
93.159.69.*



+8 Profil

icon Re: Access Baza Znanja10.11.2008. u 17:42 - pre 187 meseci
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.
 
Odgovor na temu

rstevic
Rade Stevic
Senior IT Consultant, DBA
Database Forum
Stavanger, Norway

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



Profil

icon Re: Access Baza Znanja13.11.2008. u 15:22 - pre 187 meseci
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.
 
Odgovor na temu

Srbin do jaja

Član broj: 219428
Poruke: 80
*.ptt.rs.



+2 Profil

icon Re: Access Baza Znanja05.11.2009. u 14:27 - pre 175 meseci
imam jedan mali dodatak za kod prebacivanja brojeva u slova.

u kodu gde se definisu brojevi od 10 do 19 nema opcije za broj 16. a po trenutnom kodu on ga ispisuje sestnaest a trebalo bi bez tog t.

znaci samo treba dodati
Code:

Case 6
rez = rez & "ses"

Nemam pojma šta da stavim u potpis!
 
Odgovor na temu

sule99
student

Član broj: 227708
Poruke: 93
*.teched.hr.



+1 Profil

icon Runtime za Access 2007 i distribucija aplikacije u Access 200711.11.2009. u 10:44 - pre 175 meseci
RUNTIME 2007 i distribucija aplikacije u ACCESS 2007

Za ovaj postupak je potrebno Access 2007 Developer Extensions. On zapravo radi setup za aplikaciju, koji se kasnije lagano instalira na korisničkim računalima. Najbolje je raditi sa .accde fajlovima. Cijeli postupak korak po korak je najbolje objašnjen na

http://msdn.microsoft.com/en-us/library/bb501030.aspx.

Ako korisnici nemaju instaliran Access 2007, onda treba imati i Access 2007 Runtime koji se zajedno upakuje s aplikacijom u Package Solution Wizard ( - to je zapravo alat s kojim se ovo sve radi a dobije se instalacijom ranije spomenutog Access 2007 Developer Extensions). I Access 2007 Developer Extensions i Access 2007 Runtime su besplatni i mogu se skinuti sa spomenog linka. Postupak ja zapravo jako jednostavan i ne bi trebalo biti problema ni za pocetnike.

Jedina napomena je da kod odabira jezika pri kreiranju setup.exe fajla pomoću Package Solution Wizard odaberemo English, inače se postupak ne može završiti (bar je tako bilo kod mene, a vidio sam da se i drugima na forumu događalo).



[Ovu poruku je menjao Zidar dana 04.05.2010. u 23:24 GMT+1]
 
Odgovor na temu

sule99
student

Član broj: 227708
Poruke: 93
*.teched.hr.



+1 Profil

icon Funkcije za prikaz trenutnog korisnika i racunala16.11.2009. u 11:15 - pre 175 meseci
FUNKCIJE ZA PRIKAZ TRENUTNOG KORISNIKA I RAČUNALA

Meni je trebalo pa sam našao na netu gotove funkcije, ako nekome zatreba da ne traži dalje.




modUserName

Option Compare Database


' This code was originally written by Dev Ashish.
' It is not to be altered or distributed,
' except as part of an application.
' You are free to use it in any application,
' provided the copyright notice is left unchanged.
'
' Code Courtesy of Dev Ashish at The Access Web

'VAŽNO! ovaj dio mora u zaglavlje da se stavi
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function fOSUserName() As String
' Returns the network login name
Dim lngLen As Long, lngX As Long
Dim strUserName As String
strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If lngX <> 0 Then
fOSUserName = Left$(strUserName, lngLen - 1)
Else
fOSUserName = ""
End If
End Function

----------------------------------------------------------------------------



modComputerName

Option Compare Database


' This code was originally written by Dev Ashish.
' It is not to be altered or distributed,
' except as part of an application.
' You are free to use it in any application,
' provided the copyright notice is left unchanged.
'
' Code Courtesy of Dev Ashish


Private Declare Function apiGetComputerName Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function fOSMachineName() As String

'Returns the computername
Dim lngLen As Long, lngX As Long
Dim strCompName As String
lngLen = 16
strCompName = String$(lngLen, 0)
lngX = apiGetComputerName(strCompName, lngLen)
If lngX <> 0 Then
fOSMachineName = Left$(strCompName, lngLen)
Else
fOSMachineName = ""
End If
End Function

[Ovu poruku je menjao Zidar dana 04.05.2010. u 23:23 GMT+1]
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Ograničenje broja redova na strani izveštaja18.01.2010. u 17:58 - pre 173 meseci
Ovo je pripremio smal
Slobodan Maljković
Kragujevac, Srbija

u poruci http://www.elitesecurity.org/t388411-0#2496775

Ograničenje broja redova na strani izveštaja pre 1h 16min



Ukoliko želimo da ograničimo broj prikazanih redova koji se pojavljuju na jednoj strani strani izveštaja, to možemo uraditi na sledeći način:

Otvorimo report u dizajn modu, pa u Detail sekciji kreiramo novi Text Box. Naka sadrži sledeća setovanja:

Name: txtcounter
Control Source: =1
Running Sum: Over Group
Visible: No

Zatim ćemo u On Format event Detail sekcije uneti sledeći VBA kod:


Code:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

If [txtcounter] Mod 2 = 0 Then
Me.Detail.ForceNewPage = 2
Else
Me.Detail.ForceNewPage = 0
End If

End Sub


Tako smo dobili izveštaj koji će na svakoj strani imati samo po dve stavke. Naravno, broj redova možemo menjati po potrebi.

Preuzeto sa: http://www.databasedev.co.uk/report_printing.html

[Ovu poruku je menjao Zidar dana 04.05.2010. u 23:18 GMT+1]
 
Odgovor na temu

Catch 22

Član broj: 148083
Poruke: 6176
93.86.127.*



+21 Profil

icon Kako utvrditi da li je forma otvorena19.01.2010. u 22:10 - pre 173 meseci
Originalna poruka postavljena u temi: Svojstvo Visible
==========================================

Access svoje objekte deli na "zbirke" (Collections). Objekti koji pripadaju nekoj kolekciji mogu biti referencirani iz VBA koda.
Kolekcija formi sadrži sve trenutno otvorene forme (vidljive i nevidljive). Forme koje nisu otvorene ne pripadaju nijednoj kolekciji.

Jedna vrlo korisna funkcija, kojom se utvrđuje da li je forma otvorena (učitana u kolekciju) sledi ispod:

Code:

'+------------------------------------
' Vraća vrednost 0 ako forma nije otvorena,
' odnosno -1 ako jeste otvorena
'+------------------------------------

Function fIsLoaded(ByVal strFormName As String) As Integer

    If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> 0 Then
        If Forms(strFormName).CurrentView <> 0 Then
            fIsLoaded = True
        End If
    End If
End Function

Pored ovog očiglednog razloga, forme se ponekad sakrivaju i radi bržeg izvršavanja aplikacije. Mnogo brže se vrši promena iz "skriven" u "vidljiv", nasuprot "zatvoren" / "otvoren"


PS
Varijacija na istu temu:

Code:

'+------------------------------------
' PROVERAVA DA LI JE FORMA OTVORENA
' VRAĆA VREDNOST TRUE AKO JE OTVORENA U
' Form view ILI Datasheet view MODU
'+------------------------------------
Function IsLoaded(ByVal strFormName As String) As Integer
    
    Const conObjStateClosed = 0
    Const conDesignView = 0
    
    If SysCmd(acSysCmdGetObjectState, acForm, _
    strFormName) <> conObjStateClosed Then
        If Forms(strFormName).CurrentView <> conDesignView Then
            IsLoaded = True
    End If
    End If
End Function




[Ovu poruku je menjao Catch 22 dana 19.01.2010. u 23:22 GMT+1]

[Ovu poruku je menjao Zidar dana 04.05.2010. u 23:19 GMT+1]
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Kako iz Accesa startovati neki drugi program26.02.2010. u 21:48 - pre 172 meseci
Kako iz Accesa startovati neki drugi program? I sta ako su imena foldera sastavljen aod vise reci?

Ovo je bilo originalno pitanje:
http://www.elitesecurity.org/t...ti-prezentaciju-pps-iz-Accessa

Trtko je dao briljantno resenje:

Citat:

Ovako radi 100%

kojiprogram = "C:\Program Files\Microsoft Office\Office10\POWERPNT.EXE"
stopokrenut = "C:\Documents and Settings\Trtko\My Documents\Preuzimanja\Program\odmor.pps"
Shell Chr(34) & kojiprogram & Chr(34) & " " & Chr(34) & stopokrenut & Chr(34), 1

Pozdrav


Majstor je majstor

[Ovu poruku je menjao Zidar dana 04.05.2010. u 23:17 GMT+1]
 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.dynamic.sbb.rs.



+13 Profil

icon Kako da korisnici uvek imaju poslednju verziju aplikacije28.04.2010. u 16:20 - pre 170 meseci
Evo ga jedan jednostavan a efikasan skriptić koji omogućava da korisnici u lokalnoj mreži, na svojim računarima uvek imaju aktuelnu verziju FrontEnd aplikacije.

Code:
Const OverwriteExisting = TRUE

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objLocalFile = objFSO.GetFile("D:\FOLDER\Program_FE.mde")
dtmLocalDate = objLocalFile.DateLastModified

Set objServerFile = objFSO.GetFile("\\Server\Share\Program_FE.mde")
dtmServerDate = objServerFile.DateLastModified

If dtmLocalDate < dtmServerDate Then
    objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting
End If

Sub Run(ByVal sFile)
Dim shell

    Set shell = CreateObject("WScript.Shell")
    shell.Run Chr(34) & sFile & Chr(34), 1, false
    Set shell = Nothing
End Sub
Run "D:\FOLDER\Program_FE.mde"

Dakle, skript pri startovanju proverava da li je datum FE fajla na lokalnom disku noviji od onoga na deljenom folderu u mreži (serveru), na kome je aktuelna verzija, i ukoliko to nije slučaj, kopira fajl sa servera na lokal, pa zatim startuje lokalnu verziju...

Skript snimite sa .vbs ekstenzijom i postavite ga kao shortcut na klijentskim računarima.


[Jos opcija imate u temi http://www.elitesecurity.org/t398557-1-Uvek-taze-FrontEnd



[Ovu poruku je menjao Zidar dana 28.11.2011. u 16:05 GMT+1]
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Promena Cene kroz vreme04.05.2010. u 22:20 - pre 169 meseci
Interesantna tema http://www.elitesecurity.org/t398638-Pracenje-cijene-kroz-vrijeme

Pokazano je kako se moze izbeci preisivanje cene u tabelu tipa STavkeNaRacunu. Umseto toga, u Cenovnik se upisuju cen za artikle sa razlicitim datumima vazenja. jedan artikl ima vis erekorda u Cenovniku, kad god es promenic ena upise se novi rekord. Onda se Cenovnik i STavkeRacuna povezu kverijem , tako da za svaku stavku (artikl) kveri cita iz cenovnika odgovarajucu cenu, na osnovu datuma racuna u tabeli Racuni.



[Ovu poruku je menjao Getsbi dana 10.05.2010. u 04:55 GMT+1]
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Razlika izmedju dva date/time podatka, izrazena na primer kao '2 godina 3meseca i 5 dana'24.06.2010. u 13:40 - pre 168 meseci
Mnogo puta postavljeno je pitanje: "Iskazati razliku izmedju dva datuma u obliku 4 godine 2 meseca i 3 dana". To nije lak zadatak i vecian resenja sirom interneta su glomazna, komplikovana i vecina ima i poneku gresku, koju nije lako otkriti.

NA ovom sajtu http://www.accessmvp.com/djsteele/Diff2Dates.html data je funkcija koja radi to sve. U slucaju da se sajt ugasi u buducnosti, evo funkcije i kako se koristi.

Primeri koriscenja funkcije:
Code:

?Diff2Dates("y", #06/01/1998#, #06/26/2002#)
4 years
?Diff2Dates("ymd", #06/01/1998#, #06/26/2002#)
4 years 25 days
?Diff2Dates("ymd", #06/01/1998#, #06/26/2002#, True)
4 years 0 months 25 days
?Diff2Dates("d", #06/01/1998#, #06/26/2002#)
1486 days

?Diff2Dates("h", #01/25/2002 01:23:01#, #01/26/2002 20:10:34#)
42 hours
?Diff2Dates("hns", #01/25/2002 01:23:01#, #01/26/2002 20:10:34#)
42 hours 47 minutes 33 seconds
?Diff2Dates("dhns", #01/25/2002 01:23:01#, #01/26/2002 20:10:34#)
1 day 18 hours 47 minutes 33 seconds

?Diff2Dates("ymd",#12/31/1999#,#1/1/2000#)
1 day
?Diff2Dates("ymd",#1/1/2000#,#12/31/1999#)
-1 day
?Diff2Dates("ymd",#1/1/2000#,#1/2/2000#)
1 day




Sama funkcija je data ovde. REzultat koji se vraca je na engleskom, a ko hoce moze da napise funkciju za prevodjenje rezultata na lokalni jezik (vodite racuna o padezima :-))
Code:

'***************** Code Start **************
Public Function Diff2Dates(Interval As String, Date1 As Variant, Date2 As Variant, _
Optional ShowZero As Boolean = False) As Variant
'Author:    ) Copyright 2001 Pacific Database Pty Limited
'           Graham R Seach MCP MVP [email protected]
'           Phone: +61 2 9872 9594  Fax: +61 2 9872 9593
'           This code is freeware. Enjoy...
'           (*) Amendments suggested by Douglas J. Steele MVP
'
'Description:   This function calculates the number of years,
'               months, days, hours, minutes and seconds between
'               two dates, as elapsed time.
'
'Inputs:    Interval:   Intervals to be displayed (a string)
'           Date1:      The lower date (see below)
'           Date2:      The higher date (see below)
'           ShowZero:   Boolean to select showing zero elements
'
'Outputs:   On error: Null
'           On no error: Variant containing the number of years,
'               months, days, hours, minutes & seconds between
'               the two dates, depending on the display interval
'               selected.
'           If Date1 is greater than Date2, the result will
'               be a negative value.
'           The function compensates for the lack of any intervals
'               not listed. For example, if Interval lists "m", but
'               not "y", the function adds the value of the year
'               component to the month component.
'           If ShowZero is True, and an output element is zero, it
'               is displayed. However, if ShowZero is False or
'               omitted, no zero-value elements are displayed.
'               For example, with ShowZero = False, Interval = "ym",
'               elements = 0 & 1 respectively, the output string
'               will be "1 month" - not "0 years 1 month".

On Error GoTo Err_Diff2Dates

   Dim booCalcYears As Boolean
   Dim booCalcMonths As Boolean
   Dim booCalcDays As Boolean
   Dim booCalcHours As Boolean
   Dim booCalcMinutes As Boolean
   Dim booCalcSeconds As Boolean
   Dim booSwapped As Boolean
   Dim dtTemp As Date
   Dim intCounter As Integer
   Dim lngDiffYears As Long
   Dim lngDiffMonths As Long
   Dim lngDiffDays As Long
   Dim lngDiffHours As Long
   Dim lngDiffMinutes As Long
   Dim lngDiffSeconds As Long
   Dim varTemp As Variant

   Const INTERVALS As String = "dmyhns"

'Check that Interval contains only valid characters
   Interval = LCase$(Interval)
   For intCounter = 1 To Len(Interval)
      If InStr(1, INTERVALS, Mid$(Interval, intCounter, 1)) = 0 Then
         Exit Function
      End If
   Next intCounter

'Check that valid dates have been entered
   If IsNull(Date1) Then Exit Function
   If IsNull(Date2) Then Exit Function
   If Not (IsDate(Date1)) Then Exit Function
   If Not (IsDate(Date2)) Then Exit Function

'If necessary, swap the dates, to ensure that
'Date1 is lower than Date2
   If Date1 > Date2 Then
      dtTemp = Date1
      Date1 = Date2
      Date2 = dtTemp
      booSwapped = True
   End If

   Diff2Dates = Null
   varTemp = Null

'What intervals are supplied
   booCalcYears = (InStr(1, Interval, "y") > 0)
   booCalcMonths = (InStr(1, Interval, "m") > 0)
   booCalcDays = (InStr(1, Interval, "d") > 0)
   booCalcHours = (InStr(1, Interval, "h") > 0)
   booCalcMinutes = (InStr(1, Interval, "n") > 0)
   booCalcSeconds = (InStr(1, Interval, "s") > 0)

'Get the cumulative differences
   If booCalcYears Then
      lngDiffYears = Abs(DateDiff("yyyy", Date1, Date2)) - _
              IIf(Format$(Date1, "mmddhhnnss") <= Format$(Date2, "mmddhhnnss"), 0, 1)
      Date1 = DateAdd("yyyy", lngDiffYears, Date1)
   End If

   If booCalcMonths Then
      lngDiffMonths = Abs(DateDiff("m", Date1, Date2)) - _
              IIf(Format$(Date1, "ddhhnnss") <= Format$(Date2, "ddhhnnss"), 0, 1)
      Date1 = DateAdd("m", lngDiffMonths, Date1)
   End If

   If booCalcDays Then
      lngDiffDays = Abs(DateDiff("d", Date1, Date2)) - _
              IIf(Format$(Date1, "hhnnss") <= Format$(Date2, "hhnnss"), 0, 1)
      Date1 = DateAdd("d", lngDiffDays, Date1)
   End If

   If booCalcHours Then
      lngDiffHours = Abs(DateDiff("h", Date1, Date2)) - _
              IIf(Format$(Date1, "nnss") <= Format$(Date2, "nnss"), 0, 1)
      Date1 = DateAdd("h", lngDiffHours, Date1)
   End If

   If booCalcMinutes Then
      lngDiffMinutes = Abs(DateDiff("n", Date1, Date2)) - _
              IIf(Format$(Date1, "ss") <= Format$(Date2, "ss"), 0, 1)
      Date1 = DateAdd("n", lngDiffMinutes, Date1)
   End If

   If booCalcSeconds Then
      lngDiffSeconds = Abs(DateDiff("s", Date1, Date2))
      Date1 = DateAdd("s", lngDiffSeconds, Date1)
   End If

   If booCalcYears And (lngDiffYears > 0 Or ShowZero) Then
      varTemp = lngDiffYears & IIf(lngDiffYears <> 1, " years", " year")
   End If

   If booCalcMonths And (lngDiffMonths > 0 Or ShowZero) Then
      If booCalcMonths Then
         varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
                   lngDiffMonths & IIf(lngDiffMonths <> 1, " months", " month")
      End If
   End If

   If booCalcDays And (lngDiffDays > 0 Or ShowZero) Then
      If booCalcDays Then
         varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
                   lngDiffDays & IIf(lngDiffDays <> 1, " days", " day")
      End If
   End If

   If booCalcHours And (lngDiffHours > 0 Or ShowZero) Then
      If booCalcHours Then
         varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
                   lngDiffHours & IIf(lngDiffHours <> 1, " hours", " hour")
      End If
   End If

   If booCalcMinutes And (lngDiffMinutes > 0 Or ShowZero) Then
      If booCalcMinutes Then
         varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
                   lngDiffMinutes & IIf(lngDiffMinutes <> 1, " minutes", " minute")
      End If
   End If

   If booCalcSeconds And (lngDiffSeconds > 0 Or ShowZero) Then
      If booCalcSeconds Then
         varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
                   lngDiffSeconds & IIf(lngDiffSeconds <> 1, " seconds", " second")
      End If
   End If

   If booSwapped Then
      varTemp = "-" & varTemp
   End If

   Diff2Dates = Trim$(varTemp)

End_Diff2Dates:
   Exit Function

Err_Diff2Dates:
   Resume End_Diff2Dates

End Function
'************** Code End *****************



 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Google maps u Accesu27.07.2010. u 13:58 - pre 167 meseci
http://www.elitesecurity.org/t370932-Google-maps-access

 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Filter sa forme ili subforme primeniti na izvestaj28.07.2010. u 13:45 - pre 167 meseci
Kako da otvorim izvestaj tako da se ispisu samo oni rekordi koji su trenutno filtrirani na formi Iili subformi)

http://www.elitesecurity.org/t405909-Stampanje-filtriranog-queria
 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.dynamic.sbb.rs.



+13 Profil

icon ClearType font efekat u Accessu 200702.09.2010. u 15:39 - pre 165 meseci
Nekima od nas ne odgovara ClearType font efekat u Accessu 2007. Evo rešenja kako ga sključiti:

Za punu verziju Accessa, dovoljno je u Access Options\Popular, dečekirati Alwaus use ClearType opciju.
U slučaju Runtime varijante, pošto tada ne postoji takav meni, potreban je sledeći Registry čač:

U grani [HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common], napraviti novi DWORD Value, pod imenom "RespectSystemFontSmooth", i dodati mu vrednost 1

Code:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common]
"RespectSystemFontSmooth"=dword:00000001
 
Odgovor na temu

[es] :: Access :: Access Baza Znanja
(TOP topic, by Getsbi)
Strane: < .. 1 2 3 4 5

[ Pregleda: 93452 | Odgovora: 82 ] > FB > Twit

Postavi temu Odgovori

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