2011-04-28 26 views
2

我有一個MS Access 2007數據庫,其中一個字段是指向需要驗證的網站上的URL的超鏈接。當從MS Access打開超鏈接時,即使用戶已經登錄到網站,Internet Explorer也要求用戶在每次超鏈接打開時重新進行身份驗證。如何使MS Access在現有的IE上下文中打開超鏈接

當從MS Outlook 2007或從開始菜單中的運行對話框打開相同的超鏈接,並且用戶已登錄到網站時,按預期方式打開超鏈接而不強制用戶重新進行身份驗證。爲什麼MS Access 2007的表現與MS Outlook 2007不同,並且(在表單中)我該如何解決這個問題?

+0

不知道它的相關性,但你說的是什麼類型的身份驗證關於?例如基於會話cookie或Windows身份驗證?您可以使用進程資源管理器來查看由Access產生的IE進程以及那些按照您的需要工作的進程,並查看它們是否有任何不同(例如命令行參數) – 2011-04-28 14:49:36

+0

我的猜測是Access由於某種原因開始了新會話在Web服務器上,而Outlook沒有。我無法解釋爲什麼會這樣。如果實際情況是這樣,那麼每次新會話開始時,必須對所討論的網站進行編程以要求登錄。有些網站允許使用cookie保存登錄信息,但顯然這不是。 – HK1 2011-05-04 13:09:28

回答

1

我找到了解決方法。在數據庫的VBA代碼,我增加了以下功能:

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (_ 
    ByVal hWnd As Long, _ 
    ByVal lpOperation As String, _ 
    ByVal lpFile As String, _ 
    ByVal lpParameters As String, _ 
    ByVal lpDirectory As String, _ 
    ByVal nShowCmd As Long) As Long 

Public Function OpenURL(theURL as String) 
    ShellExecute Screen.ActiveForm.hWnd, "open", theURL, "", "", vbNormalFocus 
End Function 

在我的表單代碼,我只需要調用的OpenURL如下:

OpenURL HyperlinkPart(Me![URL], acFullAddress) 
+0

不幸的是,我不覺得這是一個可以接受的解決方案,因爲它需要很多額外的努力才能使其表現得像超鏈接。我不明白爲什麼Microsoft使Access處理鏈接與*其他Office應用程序不同* – StockB 2013-11-01 18:50:52

+0

我不會說這需要「很多」額外的努力,假設您在窗體上顯示超鏈接,只需格式化文本框看起來像一個超鏈接,並將「OpenURL」調用添加到「OnClick」事件中,然後它自己照看。您沒有獲得超鏈接的右鍵單擊功能,但是您何時需要這些功能?從我+1。 – Simon1979 2014-05-05 05:44:09

相關問題