Newsgroup: it.comp.appl.access
Titolo: Creare collegamento al da VBA

Ciao a tutti,
c'è un modo per creare un collegamento all'applicazione da inviare al 
desktop tramite VBA?
Grazie
Roberto 

 ha scritto nel messaggio 
news:452e7187$0$5853$4faf...@reader3.news.tin.it...

Prova con WSH/VBScript:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/d91b9d23-a7e5-4ec2-8b55-ef6ffe9c777d.asp
Togli il riferimento all'oggetto WScript...
Ciao.
-- 
Sergio MAZZA 

Roberto da Parma ha scritto:

Intendi uno ShortCut...?
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=149
@Alex

 ha scritto nel messaggio 
news:1160672258.1...@k70g2000cwa.googlegroups.com...


Intendi uno ShortCut...?
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=149
@Alex
Perfetto!
Sorry per non aver consultato prima il tuo sito!
Roberto 

 Roberto
Intendi uno ShortCut...?
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=149
@Alex
Ciao @Alex....scusami, va bene il codice che c'č nel tuo sito... ma dovrei 
un attimo modificarlo.
Nel senso che va bene per il riferimento diretto al file ma se devo inserire 
delle opzioni all'apertura ho provato in vari modi ma non riesco a farlo 
funzionare....
Questo č quanto...il riferimento sarebbe:
"C:\Programmi\Microsoft Office\OFFICE11\MSACCESS.EXE" /wrkgrp 
''E:\Lavoro\E\System.mdw'' ''E:\Lavoro\E\E s.r.l.mdb"
Ho provato cosě ...ma non trascrive correttamente...
[CUT]
Dim cmd as string
cmd = " /wrkgrp ''" & Application.CurrentProject.Path & "\System.mdw'' ''" & 
CurrentDb.Name & "''"
[CUT]
    oShellLink.TargetPath = "MSACCESS.EXE"
    oShellLink.TargetPath = oShellLink.TargetPath & cmd
Son che c'č qualcosa che non torna ma non riesco a saltarci fuori....se puoi 
darmi una mano...??
Grazie
Roberto

 Roberto
La Path completa di MSACCESS.EXE dov'è....???
"C:\Programmi\Microsoft Office\OFFICE11\MSACCESS.EXE"
io non la vedo...!
Altra cosa non dimenticare l'uso del chr(34) in modo corretto....!!!
Ho visto che tu usi gli apicetti, penso sia equivalente, ma io uso il
chr(34) in modo
che mi risulta più leggibile la stringa....!
@Alex

 Roberto
Altra cosa che mi sfuggiva.....!
Questo non va bene non è una variabile
    oShellLink.TargetPath = "MSACCESS.EXE"
    oShellLink.TargetPath = oShellLink.TargetPath & cmd
Se non usi il Metodo SAVE prima non richiami nulla....
Sempre fare il Debug delle stringhe prima di lanciare comandi ....!!!!!
Mandalo ad un MsgBox così ti rendi anche conto se la stringa è quella
che ti aspetti....
in questo modo vedrai che ti accorgi dove sbagli senza chiedere....
@Alex

 ha scritto nel messaggio 
news:1160998455.8...@m73g2000cwd.googlegroups.com...





- non so... ma il richiamo andava bene (la prima parte di stringa era 
restituita correttamente)
 era poi l'associazione dei due pezzi che non tornava....
Sempre fare il Debug delle stringhe prima di lanciare comandi ....!!!!!
Mandalo ad un MsgBox così ti rendi anche conto se la stringa è quella
che ti aspetti....
in questo modo vedrai che ti accorgi dove sbagli senza chiedere....
@Alex
No no...sapevo di sbagliare, perchè la stringa restituita non era 
corretta...
L'uso ripetuto di oShellLink.TargetPath è dovuto al fatto che volevo che 
indipendentemente dalla versione di access, ricavasse il percorso di 
MSACCESS.EXE
Solo  oShellLink.TargetPath = "MSACCESS.EXE" mi permetteva di ricavare la 
stringa
"C:\Programmi\Microsoft Office\OFFICE11\MSACCESS.EXE" (nel caso di AC2003)
così ripetendola
    oShellLink.TargetPath = "MSACCESS.EXE"
    oShellLink.TargetPath = oShellLink.TargetPath & cmd
ottenevo la prima parte della stringa....a cui poi aggiungevo la variabile 
cmd
forse quello che appunto non "godeva" erano gli apici che prontamente 
sostituirò con chr(34)
Grazie ti farò sapere
Roberto

 Roberto
Bocciato...!
Ti sarebbe bastato fare una ricerca sul NG per trovare questo:
syscmd(acSysCmdAccessDir) 
Saluti
@Alex

 ha scritto nel messaggio 
news:1161019523.0...@k70g2000cwa.googlegroups.com...


Bocciato...!

syscmd(acSysCmdAccessDir)
Saluti
@Alex
Eh...questa è pesante!!Ammetto che non lo consulto da un pò.... :-((((
Però...a questo punto avrei risolto se non fosse che la stringa non viene 
passata correttamente a oShellLink.TargetPath
o meglio...la variabile stringa è corretta ma dopo la creazione del link la 
"/" è tramutata in "\"...
nonostante l'utilizzo di chr(47)...forse proprio per la proprietà di 
.TargetPath??
dato il codice
    Dim WshShell, strDesktop, oShellLink, oUrlLink
    Dim cmd1 As String
    Set WshShell = CreateObject("WScript.Shell")
    strDesktop = WshShell.SpecialFolders("Desktop")
    Set oShellLink = WshShell.createshortcut(strDesktop & "\" & 
GetNamePartEx(Left(CurrentDb.Name, Len(CurrentDb.Name) - 3)) & "lnk")
    cmd1 = Chr(34) & SysCmd(acSysCmdAccessDir) & Chr(34) & " " & Chr(47) & 
"wrkgrp " & Chr(34) & Application.CurrentProject.Path & "\System.mdw" & 
Chr(34) & " " & Chr(34) & CurrentDb.Name & Chr(34)
    'La stringa cmd1 è passata correttamente
    oShellLink.TargetPath = cmd1
    oShellLink.WindowStyle = 1
    'oShellLink.Hotkey = "Ctrl+Alt+e"
    oShellLink.IconLocation = Application.CurrentProject.Path & "\Icona.ico"
    oShellLink.Description = "Gestione " & 
Left(GetNamePartEx(CurrentDb.Name), Len(GetNamePartEx(CurrentDb.Name)) - 4)
    oShellLink.WorkingDirectory = strDesktop 
'Application.CurrentProject.Path
    oShellLink.Save
    Set WshShell = Nothing
    Set strDesktop = Nothing
    Set oShellLink = Nothing
Se la risposta è banale...dimmelo...così mi impicco con il cavo del mouse!!!
Grazie
Roberto 

 Roberto
-- 
-- 
Massimiliano Amendola
www.accessgroup.it
Il sito italiano di svilupatori Access
www.donkarl.com/it/cisa
 

 ha scritto nel messaggio 
news:eh2e59$qrk$1...@area.cu.mi.it...

:-)))

 Roberto
La risposta potrebbe pure essere banale....!
Io ottengo questo risultato e non mi pare ci siano conversioni
anomale....:
"C:\Programmi\Microsoft Office\Office10\MSACCESS.EXE" /wrkgrp
"C:\Test\System.mdw" "C:\Test\Menù.mdb"
che confrontato con quello che ti aspettavi direi che va bene....!!!!!
"C:\Programmi\Microsoft Office\OFFICE11\MSACCESS.EXE" /wrkgrp
''E:\Lavoro\E\System.mdw'' ''E:\Lavoro\E\E s.r.l.mdb"
Quel'è il problema....???
@Alex

 Roberto
La risposta potrebbe pure essere banale....!
Io ottengo questo risultato e non mi pare ci siano conversioni
anomale....:
"C:\Programmi\Microsoft Office\Office10\MSACCESS.EXE" /wrkgrp
"C:\Test\System.mdw" "C:\Test\Menů.mdb"
che confrontato con quello che ti aspettavi direi che va bene....!!!!!
"C:\Programmi\Microsoft Office\OFFICE11\MSACCESS.EXE" /wrkgrp
''E:\Lavoro\E\System.mdw'' ''E:\Lavoro\E\E s.r.l.mdb"
Quel'č il problema....???
@Alex
No č qui il problema! ...ottengo....
"C:\Programmi\Microsoft Office\OFFICE11\MSACCESS.EXE" \wrkgrp
''E:\Lavoro\E\System.mdw'' ''E:\Lavoro\E\E s.r.l.mdb"
invece la barra dovrebbe essere /....ma a me salta fuori \ ....
non riesco a capire perchč lo cambi cosě....???
Mi conforta (in parte) il fatto che da te funzioni....
Roberto

 Roberto
E' un conforto da poco.... hai dato un'occhiata alle impostazioni
internazionali
che non ci sia qualche cosa che cozza....!!!
Purtroppo non ho la più pallida idea non avendo il problema..!
@Alex

 Roberto
E' un conforto da poco.... hai dato un'occhiata alle impostazioni
internazionali
che non ci sia qualche cosa che cozza....!!!
Purtroppo non ho la piů pallida idea non avendo il problema..!
@Alex
Vuol dire che il codice č giusto e solo a me per un qualche motivo non 
funzia...provvederň a capire il perchč!
Grazie
Roberto 


Chiedo ancora il vostro aiuto....non ci salto fuori....
Anche in una nuova installazione, altro PC il carattere / viene convertito 
in \ ...
Centreranno i riferimenti???
Ciao
Roberto 

 ha scritto nel messaggio 
news:452e7187$0$5853$4faf...@reader3.news.tin.it...

Vorrei fare un'esperimento....è possibile modificare il percorso di un 
collegamento già esistente?
Ciao
Roberto

Roberto da Parma ha scritto:
[CUT]
Ho fatto diverse prove, e nonostante la stringa passata sia
strutturalmete corretta, quando
viene scritta realmente nel LINK vengono invertiti i BackSlash come hai
correttamente evidenziato...!
Non sò che dire per suggerirti una variante...., hai provato a crearlo
via API...?
Il mio è solo un suggerimento per prova ma non sonon sicuro che non
dia lo stesso problema...!
1° Metodo:
Public Declare Function fCreateShellLink Lib "vb6stkit.dll" _
    (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, _
     ByVal lpstrLinkPath As String, ByVal lpstrLinkArguments As String,
_
     ByVal fPrivate As Long, ByVal sParent As String) As Long
The additional parameters require the following values...
    fPrivate
        - True if you want to create the shortcut in a logged on user's
            private group (only Windows NT/2000 only)
        - False if you want to create the shortcut in a common group
            (available to all users who log onto the machine)
    sParent
        - "$(Start Menu)" if you want the item to appear in the top
portion
            of the Start Menu
        - "$(Programs)" if you want the item to appear in the Programs
Menu
            (that hangs off the start menu)
Therefore, you need to use something like the following code...
Sub Command1_Click()
    Dim lReturn As Long
    'Add to Desktop
    lReturn = fCreateShellLink("..\..\Desktop", "Shortcut to
Calculator", _
                    "c:\windows\calc.exe", "", False, "$(Programs)")
    'Add to Program Menu Group
    lReturn = fCreateShellLink("", "Shortcut to Calculator", _
                    "c:\windows\calc.exe", "", False, "$(Programs)")
    'Add to Startup Group
    'Note that on Windows NT, the shortcut will not actually appear
    'in the Startup group until your next reboot.
    lReturn = fCreateShellLink("\Startup", "Shortcut to Calculator", _
                    "c:\windows\calc.exe", "", False, "$(Programs)")
End Sub
2° Metodo:
http://vbnet.mvps.org/code/shell/desktoplink.htm
3° Metodo più complesso sfrutta l'implementazione dell'interfaccia di
una Libreria, con access funziona solo da A2002 in avanti:
http://vbaccelerator.com/home/VB/Type_Libraries/ShellLink/article.asp
4° La base è per VB6
http://www.freevbcode.com/ShowCode.Asp?ID=1333
Facci sapere come è andata.....
@Alex

 ha scritto nel messaggio 
news:1161556877.5...@i42g2000cwa.googlegroups.com...

[CUT]



1° Metodo:









    'Add to Startup Group

2° Metodo:
http://vbnet.mvps.org/code/shell/desktoplink.htm



@Alex
Grazie dei link @Alex!
Farò sicuramente delle prove e ti/vi farò sapere!
Roberto