2011-11-28 144 views
0

我想創建一個打開excel文件後立即打開的宏,並且在進行身份驗證之前不允許任何操作。如何編寫一個excel vba宏,該文件在打開文件後立即打開用於登錄目的?

這個想法是,當身份驗證成功時,登錄宏將調用另一個與數據庫建立連接的宏,並調用一個將填充表的過程,我也懷疑如何製作表單,因爲它具有連接到數據庫。

認證過程需要讀取用戶表單上的信息,並能夠將其作爲參數發送給SQL中的過程,以便它返回認證是否成功。

有什麼建議嗎? 提前謝謝!

回答

4

您需要連接到Workbook_Open事件

Private Sub Workbook_Open() 

End Sub 

即進入工作簿模塊。將您的身份驗證宏放在該子目錄中,並且只要打開工作簿,它就會觸發。

+1

+1請記住,但是,用戶可以選擇不啓用宏,在這種情況下Workbook_Open宏將不會運行。 –

+0

@RachelHettinger很好的跟進觀點。 –

+0

謝謝!那正是我需要的! –

0

在啓動時調用宏的方式爲jstnS描述了使用Workbook_Open()

但是,您的問題有點不清楚身份驗證,因爲如果您想在Excel中存儲登錄名/密碼,您將不得不考慮它。

正如你不能真正保護VBA代碼(在此threadthread討論),在Excel中登錄不會被真正確保。其實,你可以嘗試在非常隱藏的工作表(隱藏VBA)中添加登錄名/密碼,並散列用戶的密碼(假設散列本身不能用作密碼)。
後一個問題可能是一個有趣的問題。

+0

謝謝你的回答!在這種情況下,保護信息不是很重要的問題,但我需要這種身份驗證,以便可以識別該人員,並且當用戶單擊登錄按鈕調用數據庫中的過程時,我可以調用另一個宏獲取用戶的公司,然後相應地填寫表格! –

+1

與計算機登錄和Excel工作簿登錄有關係嗎?如果是這樣,那麼抓住當前登錄Windows的用戶呢?這可以在VBA中完成。 –