🚀 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 Jan Koc Thu, 26 Jul 2018 07:29
Zmiana skrótu na pulpicie
#137620
Author: Jan Koc
Date: Thu, 26 Jul 2018 07:29
59 lines
3574 bytes
Dzień dobry.
Usiłuję zautomatyzować nowelizację bazy i nie umiem sobie poradzić z 
1. Wklejeniem skrótu do bazy na pulpicie w to samo miejsce na którym był stary skrót (by nie wędrował po ekranie)
2. Jeśli użytkownik używa dwa lub więcej ekranów to program  nie znajduje starego skrótu, jeśli jest on umieszczony na ekranie drugim
3. Jak wykonać operację podmianki skrótów jeśli użytkownik ma je umieszczone na pasku zadań lub w menu rozwijalnym

To co znalazłem w internecie chodzi poprawnie (oprócz w/w zastrzeżeń) i ma postać

Dim sPath, Scieżka_Folderu_Bazy As String
    sPath = CurrentDb.Name
    Scieżka_Folderu_Bazy = Left$(sPath, Len(sPath) - Len(Dir$(sPath)))

'tworzymy nowy
Dim wersja As String
Dim WScript
Dim WSHShell
Dim strDesktop
Dim oShellLink
Dim xx As Integer
Dim strComputer As String
Dim objWMIService
Dim colItems
Dim objItem
Dim strpath
Dim colFiles
Dim objFile
Dim a As String
 'usuwam stary skrót
xx = DBEngine.Workspaces(0)(0).Containers("Databases").Documents("UserDefined").Properties("WersjaProg")
  strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_ShortcutFile Where FileName = 'baza 2018 (" & xx & ")'")
For Each objItem In colItems
    If InStr(objItem.Name, "desktop") Then
        strpath = objItem.Name
        strpath = Replace(strpath, "\", "\\")
        Set colFiles = objWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & strpath & "'")
        For Each objFile In colFiles
            objFile.Delete
       Next
    End If
 Next
  'tworzę nowy skrót
  xx = xx + 1
          Set WSHShell = CreateObject("wscript.Shell")
          strDesktop = WSHShell.SpecialFolders("Desktop")
          Set oShellLink = WSHShell.CreateShortcut(strDesktop & "\Baza 2018 (" & xx & ").lnk")
          oShellLink.TargetPath = Scieżka_Folderu_Bazy & "Baza 2018 (" & xx & ").accdb"
          oShellLink.WindowStyle = 1
          oShellLink.Hotkey = "CTRL+SHIFT+b"
          oShellLink.WorkingDirectory = Scieżka_Folderu_Bazy
          oShellLink.Save

Set WSHShell = Nothing
End Sub

Z góry dziękuję za pomoc

Jan Kociumbas
Re: Zmiana skrótu na pulpicie
#137621
Author: Radosław Biernacki
Date: Mon, 30 Jul 2018 19:20
8 lines
1802 bytes
W dniu czwartek, 26 lipca 2018 09:29:11 UTC+2 użytkownik Jan Koc napisał:
> Dzień dobry.
> Usiłuję zautomatyzować nowelizację bazy i nie umiem sobie poradzić z 
<ciach>
A może od innej strony ?

Rozwiązanie mistrza:
http://www.access.vis.pl/war209.htm
Re: Zmiana skrótu na pulpicie
#137622
Author: Jan Koc
Date: Wed, 01 Aug 2018 09:09
6 lines
2126 bytes
Witam !!!
Dziękuję za podpowiedź, już to przerabiałem. 
Zaktualizować wersję w ten sposób oczywiście można, ale gdyby nazwa nowej bazy pozostawała taka sama (a nie da się tego zrobić, tzn. mnie się nie udało) to ok wszystkie stare skróty chodzą poprawnie i jest miodzio. Niestety przy zmianie nazwy trzeba pobawić się skrótami, co udało mi się dzięki zasobom internetu zrobić.  Ale nie do końca – problemy jak powyżej
A tak dodatkowo, jak podejrzeć kod źródłowy używanej w tym przykładzie bazy ver.adp ?
Jeszcze raz dziękuję.
Jan
Re: Zmiana skrótu na pulpicie
#137623
Author: Radosław Biernacki
Date: Wed, 01 Aug 2018 10:36
45 lines
3721 bytes
W dniu środa, 1 sierpnia 2018 11:09:54 UTC+2 użytkownik Jan Koc napisał:
> Witam !!!
> Dziękuję za podpowiedź, już to przerabiałem. 
> Zaktualizować wersję w ten sposób oczywiście można, ale gdyby nazwa nowej bazy pozostawała taka sama (a nie da się tego zrobić, tzn. mnie się nie udało) to ok wszystkie stare skróty chodzą poprawnie i jest miodzio. Niestety przy zmianie nazwy trzeba pobawić się skrótami, co udało mi się dzięki zasobom internetu zrobić.  Ale nie do końca – problemy jak powyżej
> A tak dodatkowo, jak podejrzeć kod źródłowy używanej w tym przykładzie bazy ver.adp ?
Proszę bardzo :)

Napisałbym do autora - Krzysztofa Pozorka.
Tylko nie mam pojęcia - jak go namierzyć.

Zawartość projektu ver.adp :

'Ms Access - sztuczki i chwyty
'http://www.access.vis.pl/
'(c) Krzysztof Pozorek
'-----------------------------
'Uwaga możesz korzystać z prezentowanego rozwiązania,
'wyłącznie pod warunkiem pozostawienia powyższego nagłówka.

Private Sub Form_Timer()
On Error Resume Next
Dim OldPath As String   'ścieżka do starego pliku bazy
Dim CpyPath As String   'tu skopiujemy nowy plik (zanim zmienimy mu nazwę na właściwą)
Dim BakPath As String   'tu zrobimy backup starego pliku (na wszelki wypadek)
    OldPath = Me.OpenArgs
    If OldPath = "" Then
        DoCmd.Quit acQuitSaveNone
        'Nic nie robimy - zabezpieczenie przed pomyłkowym wykonaniem procedury.
        '(w OpenArgs musi być ścieżka do starego pliku bazy)
    Else
        BakPath = CurrentProject.Path & "\OldVer.bak"
        Kill BakPath    'usuwamy starą kopię
        'zachowujemy na wszelki wypadek starą wersję pod zmienioną nazwą
        Err = 0
        Name OldPath As BakPath
        If Err <> 0 Then
            'Aplikacja macierzysta jeszcze się nie zamknęła - czekamy daleja
        Else
            'finalne zapisanie nowej wersji pod starą nazwą pliku
            Kill OldPath
            Name CurrentProject.Path & "\NewVer.mdb" As OldPath
            DoCmd.Quit acQuitSaveNone
        End If
    End If
End Sub
Re: Zmiana skrótu na pulpicie
#137624
Author: Jan Koc
Date: Wed, 01 Aug 2018 13:26
4 lines
1509 bytes
Bardzo dziękuję.
Mniej więcej tak to też zrobiłem przy pomocy internetu.

Jan Kociumbas
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