台灣最大程式設計社群網站
線上人數
1455
 
會員總數:239065
討論主題:185513
歡迎您免費加入會員
討論區列表 >> ACCESS >> 另建本機檔案寫入資料表問題(帳密驗證)
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
另建本機檔案寫入資料表問題(帳密驗證)
價值 : 100 QP  點閱數:231 回應數:4

樓主

湯匙
門外漢
0 1
8 0
發送站內信

各位大大 您好:
新手第一次提問,若有失禮的地方請多包涵!接觸不久,所以請不要罵我都沒去找資料,已經有找過好幾天,實在不知道怎麼處理,才提問的,知識及資質愚昧+經驗不足,請勿見怪了,以下是我的問題~
1.目的:我想要製作一個帳號密碼驗證的介面,access主要檔案將在內部網碟上共用使用,當每台電腦之人員登入正確後,便會在本機建立一個加密ACCESS登入人員紀錄檔案(每台電腦個別驗證並於本機建檔,登出後刪除),用此方式主要目的是,當開啟主表單後,可以各別驗證各個按鈕的登入人員的進入權限
2.目前成功狀況:可驗證帳號密碼,可本機ACCESS建檔,可檔案加密,可建立資料表,以上是已經完成的部分,但遇到問題如下
3.遇到問題:1.開啟t2.AddNew (出現"找不到方法或資料成員") 2.寫入本機電腦檔案的資料表問題還沒有解決(我只要寫入已成驗證完成的人員"帳號名稱"而已)
4.DIY處理現況:已確認在VBA已勾選 microsoft DAO 3.6 Object Library
5.程序碼如下:
Private Sub Command6_Click() '初始選單+帳號密碼驗證確認
On Error GoTo error1
'On Error Resume Next

Dim id As String
Dim password As String
Dim display As String
display = 1 '預設=1顯示驗證帳密錯誤

Dim db1 As Database
Dim t1 As TableDef
Dim t2 As TableDef
Dim filel As String
filel = "c:\aa.mdb"

Dim con2 As New ADODB.Connection
Dim rcord2 As New ADODB.Recordset

'------------------------------------------------------------
Set con2 = CurrentProject.Connection
rcord2.Open "Select *From 帳號密碼資料表", con2, adOpenKeyset, adLockPessimistic

id = Forms!FORM_start01!Text8.Value '取得表單輸入欄位帳號放入id
password = Forms!FORM_start01!Text10.Value '取得表單輸入欄位帳號放入password
'------------------------------------------------------------判斷區
With rcord2
Do While Not .EOF

If id = .Fields("帳號名稱") Then '驗證帳號
If password = .Fields("密碼") Then '驗證密碼
'------------------------驗證正確執行此段

Set db1 = Workspaces(0).CreateDatabase(filel, dbLangGeneral)
Set t1 = db1.CreateTableDef("table1")
db1.NewPassword "", "aa" '設定密碼

With t1
t1.Fields.Append .CreateField("登入帳號", dbText, 20)
End With

DoCmd.OpenForm "FORM0000_main", acNormal, "", "", , acNormal '開取主選單
display = 0 '設定不顯示帳密驗證錯誤訊息
'DoCmd.Close acForm, "FORM_start01" '關閉初始表單


Set db1 = Workspaces(0).OpenDatabase(filel, True, False, ";pwd=aa")
'Set t1 = db1.CreateTableDef("table1")
Set t2 = CurrentDb.OpenRecordset("table1", dbOpenDynaset)

t2.AddNew '(目前此段.AddNew出現問題,找不到方法或資料成員)
t2("登入帳號") = id
t2.Update


db1.TableDefs.Append t1
db1.Close

'-------------------------
Else
End If

Else
End If

.MoveNext

Loop
End With
'-------------------------------------------------------------------


If display = 1 Then
MsgBox "帳號密碼驗證錯誤!", vbExclamation, "帳號密碼驗證結果"
End If
Exit Sub


error1:
MsgBox Err.Description
Resume Next
Exit Sub


End Sub





搜尋相關Tags的文章: [ AddNew ] , [ 另建本機檔案寫入資料表問題(帳密驗證) ] ,
本篇文章發表於2016-12-24 22:53
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

mindthink
檢舉此回應
Set db1 = Workspaces(0).OpenDatabase(filel, True, False, ";pwd=aa")
'Set t1 = db1.CreateTableDef("table1")
Set t2 = CurrentDb.OpenRecordset("table1", dbOpenDynaset)

t2.AddNew '(目前此段.AddNew出現問題,找不到方法或資料成員)


因為看不大懂您的文字說明,我只好先問問:
第3行的 CurrentDB 是誰呀?table1不是在db1裡面?
本篇文章回覆於2017-02-08 11:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

kib72377
檢舉此回應
CurrentDB 就是現在正在使用的那一個資料庫,
即ACCESS開啟的那個 .MDB檔.

CurrentDB 是 DAO 物件,
現在大部分 ACCESS書籍 "教"的都是 ADO 了,
所以 CurrentDB 會給你感覺陌生.
本篇文章回覆於2017-02-09 08:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

kib72377
檢舉此回應
樓主 DAO 和 ADO 混用?

建議 在"設定引用項目"(舊版叫做"參照")中,
將 DAO 順序排在 ADO 前.
本篇文章回覆於2017-02-09 08:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

kib72377
檢舉此回應
請先確認在此之前 table1已存在於 CurrentDB中...
Set t2 = CurrentDb.OpenRecordset("table1", dbOpenDynaset)
t2.AddNew '(目前此段.AddNew出現問題,找不到方法或資料成員)


然後....樓主是從哪裡找來的碼拼湊出這一大段程式的
本篇文章回覆於2017-02-09 08:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.