🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
5 messages
5 total messages Started by Phantom Fri, 23 Mar 2018 12:08
Zapis ścieżki do pliku w polu tekstowym
#137576
Author: Phantom
Date: Fri, 23 Mar 2018 12:08
15 lines
1841 bytes
Witam

Potrzebuję zapisywać ścieżki do konkretnych plików pdf znajdujących się na dysku komputera.
Moja wizja jest taka:
1. w formularzu mam przycisk "podepnij pdf..";
2. po kliknięciu otwiera się eksplorator windows;
3. Wybieram lokalizację pliku pdf;
4. Klikam w plik: FV1002018.pdf;
5. Zapisuje mi się ścieżka np.: w polu formularza "[ScPliku]" o treści: C:\Faktury\2018\PDF\FV1002018.pdf

Proszę o pomoc lub odesłanie do jakiegoś linku historycznego, który mi pomoże.

Z góry dziękuję za pomoc.
Pozdrawiam
Tomek
Re: Zapis ścieżki do pliku w polu tekstowym
#137577
Author: Zbigniew Bratko
Date: Fri, 23 Mar 2018 17:46
151 lines
5637 bytes
W dniu 2018-03-23 o 13:08, Phantom pisze:
> Witam
> 
> Potrzebuję zapisywać ścieżki do konkretnych plików pdf znajdujących się na dysku komputera.
> Moja wizja jest taka:
> 1. w formularzu mam przycisk "podepnij pdf..";
> 2. po kliknięciu otwiera się eksplorator windows;
> 3. Wybieram lokalizację pliku pdf;
> 4. Klikam w plik: FV1002018.pdf;
> 5. Zapisuje mi się ścieżka np.: w polu formularza "[ScPliku]" o treści: C:\Faktury\2018\PDF\FV1002018.pdf
> 
> Proszę o pomoc lub odesłanie do jakiegoś linku historycznego, który mi pomoże.

Przykładowy kod ze strony:
http://www.faq.accdb.pl/24a_ApiDlgFaq.htm#api24a_02

'5.2 Jak wyświetlić okno dialogowe " Otwórz plik " lub " Zapisz plik "
'- wersja uproszczona (wybór tylko jednego pliku) ?
Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
         Alias "GetSaveFileNameA" _
         (pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
       Alias "GetOpenFileNameA" _
       (pOpenfilename As OPENFILENAME) As Long
Private Type OPENFILENAME
     lStructSize As Long
     hwndOwner As Long
     hInstance As Long
     lpstrFilter As String
     lpstrCustomFilter As Long
     nMaxCustrFilter As Long
     nFilterIndex As Long
     lpstrFile As String
     nMaxFile As Long
     lpstrFileTitle As String
     nMaxFileTitle As Long
     lpstrInitialDir As String
     lpstrTitle As String
     flags As Long
     nFileOffset As Integer
     nFileExtension As Integer
     lpstrDefExt As String
     lCustrData As Long
     lpfnHook As Long
     lpTemplateName As Long
End Type
Private Const OFN_ALLOWMULTISELECT = &H200


' otwiera okno dialogowe " Otwórz plik: " lub " Zapisz jako: " - tylko 
wybór jednego pliku
' zwraca pełną ścieżkę pliku, po anulowaniu wyboru pliku zwraca ciąg 
zerowej długości ""
Public Function zbDlgSaveOpenFileBis(fSave As Boolean, _
                             Optional hOwner As Long = 0, _
                             Optional sTitle As String = "", _
                             Optional sInitDir As String = "", _
                             Optional sFilter As String = "", _
                             Optional lFilterIndex As Long = 0, _
                             Optional lFlags As Long = 0) As String
Dim ofn As OPENFILENAME

     With ofn
         .hwndOwner = hOwner
         .hInstance = 0
         .lpstrInitialDir = sInitDir

         If Len(sTitle) = 0 Then
             If fSave Then
                 .lpstrTitle = " Zapisz jako: "
             Else
                 .lpstrTitle = " Otwórz plik: "
             End If
         Else
             .lpstrTitle = sTitle
         End If

         If Len(sFilter) = 0 Then
             .lpstrFilter = "Wszystkie (*.*)" & vbNullChar & "*.*" & _
                            vbNullChar & vbNullChar
         Else
             .lpstrFilter = sFilter & vbNullChar
         End If

         .nFilterIndex = lFilterIndex
         .nMaxFile = 260
         .lpstrFile = String(.nMaxFile, vbNullChar)
         .nMaxFileTitle = 260
         .lpstrFileTitle = String(.nMaxFileTitle, vbNullChar)

         If lFlags = 0 Then
             If fSave = True Then
                 .flags = &HA080F
             Else
                 .flags = &HA180D
             End If
         Else
             .flags = lFlags
         End If

         ' nie pozwól na wybór wielokrotny
         If (lFlags And OFN_ALLOWMULTISELECT) = _
                        OFN_ALLOWMULTISELECT Then
             .flags = .flags And (Not OFN_ALLOWMULTISELECT)
         End If

         ' określ długość zmiennej
         .lStructSize = Len(ofn)

         If fSave = True Then
             GetSaveFileName ofn
         Else
             GetOpenFileName ofn
         End If

         zbDlgSaveOpenFileBis = Left$(.lpstrFile, _
                               InStr(.lpstrFile, vbNullChar) - 1)

     End With

End Function


' przykładowe wywołanie:
Private Sub btnPodepnijPdf_Click()
Dim sFilter As String
Dim sRet As String

   sFilter = "Pliki pdf (*.pdf)" & vbNullChar & "*.pdf*" & vbNullChar & _
             "Wszystkie (*.*)" & vbNullChar & "*.*" & vbNullChar

     ' okno dialogowe - " Zapisz jako: ""
     'sRet = zbDlgSaveOpenFileBis(True, , , "C:\", sFilter)
     ' okno dialogowe - " Otwórz plik: "
     sRet = zbDlgSaveOpenFileBis(False, , , "C:\Faktury\2018", sFilter)

   If Len(sRet) = 0 Then
     MsgBox "Anulowano"
   Else
     MsgBox sRet
     Me!ScPliku = sRet
   End If

End Sub


-- 
Pozdrowienia
BraZby
www.faq.accdb.pl
www.accdb.pl
Re: Zapis ścieżki do pliku w polu tekstowym
#137578
Author: Phantom
Date: Sat, 24 Mar 2018 10:24
3 lines
1500 bytes
Wielkie dzięki!!!
Pozdrawiam
Tomek
Re: Zapis ścieżki do pliku w polu tekstowym
#137579
Author: md
Date: Sun, 25 Mar 2018 17:33
37 lines
2224 bytes
Function sciezka_odczytywanego_pliku(filtr As String) As String
'wywołanie x = sciezka_odczytywanego_pliku("wybrane pliki (*.mdb;*.mde;*.)) 
lub co sobie wymyślisz   :)
On Error Resume Next
    WizHook.Key = 51488399
    WizHook.GetFileName 0, "", "", "", sciezka_odczytywanego_pliku, "", 
filtr, 0, 0, 0, True

End Function

funkcja opiera się na nieudokumetowanej bibliotece, ale szeroko opisanej :)
istotny jest numer WizHook.Key = 51488399 bo daje do niej dostęp

md



"Phantom" <biuro.tekaoprogramowanie@gmail.com> wrote in message 
news:42ca43b9-0cab-4dd0-b326-b07f93e382fd@googlegroups.com...
Witam

Potrzebuję zapisywać ścieżki do konkretnych plików pdf znajdujących się na 
dysku komputera.
Moja wizja jest taka:
1. w formularzu mam przycisk "podepnij pdf..";
2. po kliknięciu otwiera się eksplorator windows;
3. Wybieram lokalizację pliku pdf;
4. Klikam w plik: FV1002018.pdf;
5. Zapisuje mi się ścieżka np.: w polu formularza "[ScPliku]" o treści: 
C:\Faktury\2018\PDF\FV1002018.pdf

Proszę o pomoc lub odesłanie do jakiegoś linku historycznego, który mi 
pomoże.

Z góry dziękuję za pomoc.
Pozdrawiam
Tomek 
Re: Zapis ścieżki do pliku w polu tekstowym
#137580
Author: Phantom
Date: Mon, 26 Mar 2018 16:08
7 lines
1714 bytes
Wow
Wygląda dobrze a przede wszystkim oszczędnie w treści :)
Na razie wykorzystałem kod podrzucony przez ZB, który działa pięknie.
Nie omieszkam sprawdzić ten, w wolnej chwili.

Dziękuję i pozdrawiam
Tomek
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