Thread View: pl.comp.bazy-danych.msaccess
7 messages
7 total messages
Started by Jacek
Tue, 24 Apr 2018 10:45
Akces 2003 - odświżenie okna Akcesa.
Author: Jacek
Date: Tue, 24 Apr 2018 10:45
Date: Tue, 24 Apr 2018 10:45
12 lines
1443 bytes
1443 bytes
Witajcie. Przy zamknięciu formularza jest kod zwalniający wcześniej użyte zasoby. Powoduje to, że w oknie Akcesa pozostaje 'biała plama, a czasami obramowanie tego zamkniętego formularza. Jak odświerzyć z poziomu kodu okno Akcesa? Pozdrawiam. --- Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast. https://www.avast.com/antivirus
Re: Akces 2003 - odświżenie okna Akcesa.
Author: Zbigniew Bratko
Date: Tue, 24 Apr 2018 16:21
Date: Tue, 24 Apr 2018 16:21
29 lines
1686 bytes
1686 bytes
W dniu 2018-04-24 o 12:45, Jacek pisze: > Witajcie. > > Przy zamknięciu formularza jest kod zwalniający wcześniej użyte zasoby. > Powoduje to, że w oknie Akcesa pozostaje 'biała plama, a czasami > obramowanie tego zamkniętego formularza. > Jak odświerzyć z poziomu kodu okno Akcesa? > [...] Spróbuj użyć funkcji DoEvents pomiędzy wywołaniami zwalniającymi wcześniej użyte zasoby, bądź ukryj formularz przed zwalnianiem zasobów. '_______________________________________________ Private Sub Form_Unload(Cancel As Integer) Me.Visible = False DoEvents End Sub Czasami używa się kilkukrotnego wywołania: DoEvents: DoEvents: DoEvents -- Pozdrowienia BraZby www.faq.accdb.pl www.accdb.pl
Re: Akces 2003 - odświżenie okna Akcesa.
Author: Jacek
Date: Fri, 11 May 2018 13:06
Date: Fri, 11 May 2018 13:06
118 lines
4879 bytes
4879 bytes
Dnia Tue, 24 Apr 2018 18:21:16 +0200, Zbigniew Bratko napisał(a):
> W dniu 2018-04-24 o 12:45, Jacek pisze:
>> Witajcie.
>>
>> Przy zamknięciu formularza jest kod zwalniający wcześniej użyte zasoby.
>> Powoduje to, że w oknie Akcesa pozostaje 'biała plama, a czasami
>> obramowanie tego zamkniętego formularza.
>> Jak odświerzyć z poziomu kodu okno Akcesa?
>>
>
> [...]
>
> Spróbuj użyć funkcji DoEvents pomiędzy wywołaniami zwalniającymi
> wcześniej użyte zasoby, bądź ukryj formularz przed zwalnianiem zasobów.
>
> '_______________________________________________
> Private Sub Form_Unload(Cancel As Integer)
> Me.Visible = False
> DoEvents
> End Sub
>
> Czasami używa się kilkukrotnego wywołania:
>
> DoEvents: DoEvents: DoEvents
Cześć Zbyszku.
Dziękuję za porade.
Mam jeszcze jedną prośbę.
Sciągnąłem z sieci procedure do drukowania raportów z Akcesa 2003 do PDF,
za pomocą 'PDF Creatora'.
Oto ona:
Sub DrukujPDF2(Raport As String, Sc As String, Plik As String)
'Author : Ken Puls ( www.excelguru.ca)
'Macro Purpose: Print to PDF file using PDFCreator
' (Download from http://sourceforge.net/projects/pdfcreator/ )
' Designed for early bind, set reference to PDFCreator
Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
Dim sPrinterName As String
Dim sReportName As String
Dim lPrinters As Long
Dim lPrinterCurrent As Long
Dim lPrinterPDF As Long
Dim prtDefault As Printer
'/// Change the report and output file name here! ///
sReportName = Raport
sPDFName = Plik
sPDFPath = Sc
'If Dir(sPDFPath) = "" Then MkDir (sPDFPath)
'Resolve index number of printers to allow changing and preserving
sPrinterName = Application.Printer.DeviceName
On Error Resume Next
For lPrinters = 0 To Application.Printers.Count
Set Application.Printer = Application.Printers(lPrinters)
Set prtDefault = Application.Printer
Select Case prtDefault.DeviceName
Case Is = sPrinterName
lPrinterCurrent = lPrinters
Case Is = "PDFCreator"
lPrinterPDF = lPrinters
Case Else
'do nothing
End Select
Next lPrinters
On Error GoTo 0
'Change the default printer
Set Application.Printer = Application.Printers(lPrinterPDF)
Set prtDefault = Application.Printer
'Start PFF Creator
Set pdfjob = New PDFCreator.clsPDFCreator
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + _
vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With
'Print the document to PDF
DoCmd.OpenReport (sReportName)
'Wait until the print job has entered the print queue
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'Wait until PDF creator is finished then release the objects
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
pdfjob.cClose
'Reset the (original) default printer and release PDF Creator
Set Application.Printer = Application.Printers(lPrinterCurrent)
Set pdfjob = Nothing
End Sub
Potrzebuję ją tak przerobić, żeby móc wywołać wiele razy z kolejnymi
raportami.
Pomożesz, proszę?
---
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: Akces 2003 - odświżenie okna Akcesa.
Author: Zbigniew Bratko
Date: Mon, 14 May 2018 08:00
Date: Mon, 14 May 2018 08:00
55 lines
2427 bytes
2427 bytes
W dniu 2018-05-11 o 15:06, Jacek pisze:
> Dnia Tue, 24 Apr 2018 18:21:16 +0200, Zbigniew Bratko napisał(a):
>
[...]
> Mam jeszcze jedną prośbę.
>
> Sciągnąłem z sieci procedure do drukowania raportów z Akcesa 2003 do PDF,
> za pomocą 'PDF Creatora'.
>
> Oto ona:
>
> Sub DrukujPDF2(Raport As String, Sc As String, Plik As String)
> 'Author : Ken Puls ( www.excelguru.ca)
> 'Macro Purpose: Print to PDF file using PDFCreator
> ' (Download from http://sourceforge.net/projects/pdfcreator/ )
> ' Designed for early bind, set reference to PDFCreator
[...]
> End Sub
>
> Potrzebuję ją tak przerobić, żeby móc wywołać wiele razy z kolejnymi
> raportami.
> Pomożesz, proszę?
[...]
A takie coś nie pójdzie ?
'___________________________________________________________________
Private Sub Polecenie0_Click()
Dim vArray As Variant
Dim i As Long
vArray = Array("nazwaRaportu_1", "C:\tmp\", "Raport_1.pdf", _
"nazwaRaportu_2", "C:\tmp\", "Raport_2.pdf", _
"nazwaRaportu_3", "C:\tmp\", "Raport_3.pdf")
For i = LBound(vArray) To UBound(vArray) Step 3
Call DrukujPDF2(vArray(i), vArray(i + 1), vArray(i + 2))
Next
End Sub
Sprawdź, czy w ścieżce jest potrzebny backslash na końcu.
Daj znać, czy się udało.
--
Pozdrowienia
BraZby
www.faq.accdb.pl
www.accdb.pl
Re: Akces 2003 - odświżenie okna Akcesa.
Author: Jacek
Date: Mon, 14 May 2018 09:46
Date: Mon, 14 May 2018 09:46
61 lines
2864 bytes
2864 bytes
Dnia Mon, 14 May 2018 10:00:04 +0200, Zbigniew Bratko napisał(a):
> W dniu 2018-05-11 o 15:06, Jacek pisze:
>> Dnia Tue, 24 Apr 2018 18:21:16 +0200, Zbigniew Bratko napisał(a):
>>
>
>
> [...]
>
>> Mam jeszcze jedną prośbę.
>>
>> Sciągnąłem z sieci procedure do drukowania raportów z Akcesa 2003 do PDF,
>> za pomocą 'PDF Creatora'.
>>
>> Oto ona:
>>
>> Sub DrukujPDF2(Raport As String, Sc As String, Plik As String)
>> 'Author : Ken Puls ( www.excelguru.ca)
>> 'Macro Purpose: Print to PDF file using PDFCreator
>> ' (Download from http://sourceforge.net/projects/pdfcreator/ )
>> ' Designed for early bind, set reference to PDFCreator
>
> [...]
>
>> End Sub
>>
>> Potrzebuję ją tak przerobić, żeby móc wywołać wiele razy z kolejnymi
>> raportami.
>> Pomożesz, proszę?
>
> [...]
>
>
> A takie coś nie pójdzie ?
>
> '___________________________________________________________________
> Private Sub Polecenie0_Click()
> Dim vArray As Variant
> Dim i As Long
> vArray = Array("nazwaRaportu_1", "C:\tmp\", "Raport_1.pdf", _
> "nazwaRaportu_2", "C:\tmp\", "Raport_2.pdf", _
> "nazwaRaportu_3", "C:\tmp\", "Raport_3.pdf")
>
> For i = LBound(vArray) To UBound(vArray) Step 3
> Call DrukujPDF2(vArray(i), vArray(i + 1), vArray(i + 2))
> Next
>
> End Sub
>
> Sprawdź, czy w ścieżce jest potrzebny backslash na końcu.
> Daj znać, czy się udało.
Hej.
No właśnie nie.
Trzeba przerobić DrukujPDF tak, żeby w obiekcie 'pdfjob' metoda
.cOption("AutosaveFilename") = sPDFName banglała.
---
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: Akces 2003 - odświżenie okna Akcesa.
Author: Zbigniew Bratko
Date: Mon, 14 May 2018 21:21
Date: Mon, 14 May 2018 21:21
66 lines
2998 bytes
2998 bytes
W dniu 2018-05-14 o 11:46, Jacek pisze:
> Dnia Mon, 14 May 2018 10:00:04 +0200, Zbigniew Bratko napisał(a):
>
>> W dniu 2018-05-11 o 15:06, Jacek pisze:
>>> Dnia Tue, 24 Apr 2018 18:21:16 +0200, Zbigniew Bratko napisał(a):
>
>> [...]
>>
>>> End Sub
>>>
>>> Potrzebuję ją tak przerobić, żeby móc wywołać wiele razy z kolejnymi
>>> raportami.
>>> Pomożesz, proszę?
>>
>> [...]
>>
>>
>> A takie coś nie pójdzie ?
>>
>> '___________________________________________________________________
>> Private Sub Polecenie0_Click()
>> Dim vArray As Variant
>> Dim i As Long
>> vArray = Array("nazwaRaportu_1", "C:\tmp\", "Raport_1.pdf", _
>> "nazwaRaportu_2", "C:\tmp\", "Raport_2.pdf", _
>> "nazwaRaportu_3", "C:\tmp\", "Raport_3.pdf")
>>
>> For i = LBound(vArray) To UBound(vArray) Step 3
>> Call DrukujPDF2(vArray(i), vArray(i + 1), vArray(i + 2))
>> Next
>>
>> End Sub
>>
>> Sprawdź, czy w ścieżce jest potrzebny backslash na końcu.
>> Daj znać, czy się udało.
>
> Hej.
>
> No właśnie nie.
> Trzeba przerobić DrukujPDF tak, żeby w obiekcie 'pdfjob' metoda
> .cOption("AutosaveFilename") = sPDFName banglała.
[...]
Jeżeli za pomocą tej procedury da się wydrukować jeden raport,
to dlaczego nie da się wydrukować jednego raportu, a potem za sekundę
(po zakończeniu działania procedury) drugiego raportu ???
Niestety, nie jestem w stanie Ci pomóc.
Ja przerabiałem Access 97, 2000, a potem 2007, 2010, 2016.
Nie wiem jak jest w Access 2003.
W Access 2007 i zapewne w wyższych wersjach jest bardziej prosto:
'_________________________________
Private Sub Polecenie0_Click()
DoCmd.OutputTo acOutputReport, "NazwaRaportu", _
acFormatPDF, "C:\tmp\MojRaport.pdf", True
End Sub
i wszystko "bangla" ;-)
--
Pozdrowienia
BraZby
www.faq.accdb.pl
www.accdb.pl
Re: Akces 2003 - odświżenie okna Akcesa.
Author: Jacek
Date: Sun, 27 May 2018 16:37
Date: Sun, 27 May 2018 16:37
69 lines
3417 bytes
3417 bytes
Dnia Mon, 14 May 2018 23:21:24 +0200, Zbigniew Bratko napisał(a):
> W dniu 2018-05-14 o 11:46, Jacek pisze:
>> Dnia Mon, 14 May 2018 10:00:04 +0200, Zbigniew Bratko napisał(a):
>>
>>> W dniu 2018-05-11 o 15:06, Jacek pisze:
>>>> Dnia Tue, 24 Apr 2018 18:21:16 +0200, Zbigniew Bratko napisał(a):
>>
>>> [...]
>>>
>>>> End Sub
>>>>
>>>> Potrzebuję ją tak przerobić, żeby móc wywołać wiele razy z kolejnymi
>>>> raportami.
>>>> Pomożesz, proszę?
>>>
>>> [...]
>>>
>>>
>>> A takie coś nie pójdzie ?
>>>
>>> '___________________________________________________________________
>>> Private Sub Polecenie0_Click()
>>> Dim vArray As Variant
>>> Dim i As Long
>>> vArray = Array("nazwaRaportu_1", "C:\tmp\", "Raport_1.pdf", _
>>> "nazwaRaportu_2", "C:\tmp\", "Raport_2.pdf", _
>>> "nazwaRaportu_3", "C:\tmp\", "Raport_3.pdf")
>>>
>>> For i = LBound(vArray) To UBound(vArray) Step 3
>>> Call DrukujPDF2(vArray(i), vArray(i + 1), vArray(i + 2))
>>> Next
>>>
>>> End Sub
>>>
>>> Sprawdź, czy w ścieżce jest potrzebny backslash na końcu.
>>> Daj znać, czy się udało.
>>
>> Hej.
>>
>> No właśnie nie.
>> Trzeba przerobić DrukujPDF tak, żeby w obiekcie 'pdfjob' metoda
>> .cOption("AutosaveFilename") = sPDFName banglała.
>
> [...]
>
> Jeżeli za pomocą tej procedury da się wydrukować jeden raport,
> to dlaczego nie da się wydrukować jednego raportu, a potem za sekundę
> (po zakończeniu działania procedury) drugiego raportu ???
>
> Niestety, nie jestem w stanie Ci pomóc.
> Ja przerabiałem Access 97, 2000, a potem 2007, 2010, 2016.
> Nie wiem jak jest w Access 2003.
>
> W Access 2007 i zapewne w wyższych wersjach jest bardziej prosto:
> '_________________________________
> Private Sub Polecenie0_Click()
> DoCmd.OutputTo acOutputReport, "NazwaRaportu", _
> acFormatPDF, "C:\tmp\MojRaport.pdf", True
> End Sub
>
> i wszystko "bangla" ;-)
Udało mi się z banglaniem;)
Okazało się, że zamknięcie procesu przed inicjalizacją, działa.
---
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads