zxz 17.03.2011 17:43
Predmet:Re: sql upit u VBA-modu

Nakaci cijeli kod kad stignes.
Nema zaobilazenja ni izvlacenja.
Nastavljamo veceras drugu smjenu.

Zuko 17.03.2011 20:19
Predmet:Re: sql upit u VBA-modu

evo koda za usporishell
PreuzmiIzvorni kôd (vbnet):
  1. Option Compare Database
  2. Option Explicit
  3.  
  4.    
  5.    
  6.       Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  7.       Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
  8.       Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  9.    
  10.       Public Const SYNCHRONIZE = &H100000
  11.    
  12.       Public Const INFINITE = -1&
  13.  
  14.       ' Usporava shel
  15.  
  16.       ' to finish, hiding while we wait.
  17.  
  18.       Public Sub UsporiShell(ByVal program_name As String, ByVal window_style As Integer)
  19.  
  20.       Dim process_id As Long
  21.  
  22.       Dim process_handle As Long
  23.      ' Start the program.
  24.      On Error GoTo ShellError
  25.      process_id = Shell(program_name, window_style)
  26.      On Error GoTo 0
  27.  
  28.           ' Wait for the program to finish.
  29.  
  30.          ' Get the process handle.
  31.  
  32.          process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
  33.  
  34.           If process_handle <> 0 Then
  35.  
  36.               WaitForSingleObject process_handle, INFINITE
  37.  
  38.               CloseHandle process_handle
  39.  
  40.           End If
  41.  
  42.           Exit Sub
  43.  
  44. ShellError:
  45.  
  46.           MsgBox "Error starting task " & _
  47.             " program_name & vbCrLf " & _
  48. " Err.Description , vbOKOnly Or vbExclamation, " & _
  49.                 "Error"
  50.         End Sub
a ovo je sa dugmeta na formi

PreuzmiIzvorni kôd (vbnet):
  1. Private Sub Command7_Click()
  2. Dim g As Integer, d As String, Mjesec1 As String, firma As String, ime As String
  3. g = Year(Now())
  4. firma = DLookup("[Statisticki broj]", "tpreduzece", "Sifra_preduzeca = " & Forms!test!SifraFirme)
  5. d = Len(Forms!test!Mjesec1)
  6. If d = 1 Then
  7. Mjesec1 = "0" & Right(Str(Forms!test!Mjesec1), 1)
  8. Else
  9. Mjesec1 = Str(Forms!test!Mjesec1)
  10. End If
  11. ime = firma & "_" & Mjesec1 & g
  12. UsporiShell Db_Putanja & "\" & pkzip.exe & "  " & ime & ".zip " & Db_Putanja & "\" & ime & ".xml", vbHide
  13. 'UsporiShell putanjafajla & "\pkzip " & PutZipa & "\" & ImeFajla & ".zip " & PutZapisa, vbHide
  14. End Sub


ovdje sam pravio ime file-a, valjda je to ok

zxz 17.03.2011 21:15
Predmet:Re: sql upit u VBA-modu

Opsti oblik:
UsporiShell PutanjaappZipa & "\pkzip " & Util.PutZipaZipa & "\" & ImeFajla & ".zip " & PutZapisaFilea, vbHide

da pretpostavimo da ti je sve na jednom jestu i mdb i xml i pkzip exe.
Sto znaci da se sve nalazi na putanji Db_Putanja.
To je procedura koja nalazi putanju mdb.
--------------------------------------------------
-----------
firma = DLookup("[Statisticki broj]", "tpreduzece", "Sifra_preduzeca = " & Forms!test!SifraFirme)

U firma imas dimo imena filea
Cijelo ime:
Dim Ime filea
ImeFilea=firma & & mjesec1
Dim app_Path

app_Patth=Db_Putanja
Znaci sad u app_path imas putanju do dir gdje se sve nalazi.
i sad sve da sklopimo:
UsporiShell app_path & "pkzip " & app_path & ImeFajla & ".zip " & app_path & ImeFajla & ".XML" , vbHide
To bi u shelu izgledalo ovako ako se to napr nalazi na putanji C:\Mojabaza
C:\Mojabaza\pkzip C:\Mojabaza\pojeime.zip C:\Mojabaza\mojeime.xml
ovo trebas dobiti.

Provejri samo sta ti vraca procedura db_Putanja
jeli vraca:
C:\Mojabaza
ili
C:\Mojabaza\
ako vraca ovo drugo onda je ok.
A ako vraca prvo onda trebas jos dodati izmedju \
Ali prvo provjeri.

Zuko 17.03.2011 22:38
Predmet:Re: sql upit u VBA-modu

Db_putanja vraća ovo drugo, ali opet neće javlja istu gresku.
Evo zakaćio sam bazu pa ako mozes pogledati, usporishell se nalazi umodulu pakovanje

zxz 17.03.2011 23:37
Predmet:Re: sql upit u VBA-modu

tako je kad na vrhu modula nemas ono

Option explicit
a lose kucas ko i ja mozda samo niansu bolje.
Citat:
Dim app_Path
app_Patth = Db_Putanja
imefajla = firma & "_" & Mjesec1 & g
UsporiShell app_Path & "pk

app_path i
appPatth

ma dobro samo jedno t viska.

To je jedna stvar a druga je sto shell ne podrzava ime filea vece od 8 karaktera a ko je vece ime onda se pise napr. 1234567789.xml--->123456~1.xml
123456~1-->ukupno 8 karaktera
ako imas 2 filea koji naprimjer imaju imena:
1234567890.xml
1234567899.xml
onda ce se prvi zbvati
123346~1.xml
a drugi
123456~2.xml

Zuko 17.03.2011 23:48
Predmet:Re: sql upit u VBA-modu

hvala na pomoci, a ovo o kucanju si upravu kad sam radio na xml na validaciji sam imao najvise gresaka u kucanju pa mu fali nedi dio nije otvoren ili zatvoren.

puno hvala još jednom

edo_ze 01.04.2011 13:12
Predmet:Re: sql upit u VBA-modu

@nzuko

u recordsetu ne smiješ davati ovakav uslov

WHERE (((TLD.Mjesec)=[forms]![test]![mjesec1]) AND ((Tradnik.Sifra_Preduzeca)=[forms]![test]![sifrafirme]))

za izvršnu SQL naredbu može ali za setovanje recordseta ide ovako:

WHERE (((TLD.Mjesec)=" & [forms]![test]![mjesec1] & ") AND ((Tradnik.Sifra_Preduzeca)=" & [forms]![test]![sifrafirme]& "))

ili ako su alfanumeričke vrijednosti:

WHERE (((TLD.Mjesec)='" & [forms]![test]![mjesec1] & "') ...

ima apostrof (') prije i li poslije navodnika