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
Author: Jan Koc
Date: Thu, 26 Jul 2018 07:29
Date: Thu, 26 Jul 2018 07:29
59 lines
3574 bytes
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
Author: Radosław Biernacki
Date: Mon, 30 Jul 2018 19:20
Date: Mon, 30 Jul 2018 19:20
8 lines
1802 bytes
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
Author: Jan Koc
Date: Wed, 01 Aug 2018 09:09
Date: Wed, 01 Aug 2018 09:09
6 lines
2126 bytes
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
Author: Radosław Biernacki
Date: Wed, 01 Aug 2018 10:36
Date: Wed, 01 Aug 2018 10:36
45 lines
3721 bytes
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
Author: Jan Koc
Date: Wed, 01 Aug 2018 13:26
Date: Wed, 01 Aug 2018 13:26
4 lines
1509 bytes
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