久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>職場>編輯數據表的操作(工作表數據與UserForm窗口的交互)

編輯數據表的操作(工作表數據與UserForm窗口的交互)

發布時間:2024-01-24閱讀(12)

導讀大家好,我們今天繼續講解VBA數據庫解決方案,今日講解的是第80講:工作表數據與UserForm窗口的交互過程中:如何對顯示的記錄進行編輯和保存。在前幾講中....

大家好,我們今天繼續講解VBA數據庫解決方案,今日講解的是第80講:工作表數據與UserForm窗口的交互過程中:如何對顯示的記錄進行編輯和保存。在前幾講中,我們實現了將工作表的數據傳給UserForm窗口,實現的開始記錄、下一條記錄最后記錄的顯示,我們今日繼續講解如何實現編輯和保存記錄。前幾講是查找與顯示,查找的目的是為了編輯。

思路:①在UserForm窗口上,設置顯示編輯和保存按鈕,用于指令的下達。

②在彈出UserForm窗口后,EXCEL文件要隱藏。

③要考慮到按鈕之間的作用,此按鈕要在開始按鈕按過之后才可以響應動作。同時窗口上可以顯示的按鈕還有"顯示下一條記錄"和"顯示最后記錄"按鈕

下面我們首先實現UserForm窗體:在上一講的基礎上我這次增加的是"編輯"和"保存"按鈕:

編輯數據表的操作(工作表數據與UserForm窗口的交互)(1)

下面看代碼的實現:

1 從EXCEL窗口進入人機交互窗口:

Sub mynzRecords_80() 將工作表數據變成記錄集,并實現編輯和保存

Application.Visible = False

UserForm1.Show

End Sub

代碼解釋:上述代碼完成從EXCEL界面到人機交互UserForm窗體,這時的Application.Caller是5.

2 窗體加載時設置相關的屬性代碼:If Right(Application.Caller, 1) = 5 Then 顯示編輯記錄

UserForm1.CommandButton1.Enabled = False 下一條記錄

UserForm1.CommandButton4.Enabled = False 最后一條記錄

UserForm1.CommandButton5.Enabled = False 編輯記錄

UserForm1.CommandButton7.Enabled = False 查找記錄

UserForm1.CommandButton8.Enabled = False 刪除記錄

UserForm1.CommandButton6.Enabled = False 保存記錄

UserForm1.CommandButton9.Enabled = False 錄入記錄

UserForm1.TextBox1.Enabled = False

UserForm1.TextBox2.Enabled = False

UserForm1.TextBox3.Enabled = False

End If

代碼解釋:上述代碼設置了各個按鈕的必要屬性,大家要注意,由于涉及到保存記錄,這里的TextBox 的Enabled屬性設置為False.

3 "編輯"按鈕響應代碼:

Private Sub CommandButton5_Click() 編輯

MsgBox ("請修改記錄!")

UserForm1.TextBox2.Enabled = True

UserForm1.TextBox3.Enabled = True

UserForm1.CommandButton6.Enabled = True 保存記錄

End Sub

代碼解釋: 點擊"編輯"按鈕后彈出對話框,要求和用戶確認,得到認可后把TextBox2.Enabled,TextBox3.Enabled, CommandButton6.Enabled的屬性修改為True,這時就用戶可以編輯了與保存了。

4 "保存"按鈕響應代碼:

Private Sub CommandButton6_Click() 保存

If UserForm1.TextBox1.Value = "" Or UserForm1.TextBox2.Value = "" Or UserForm1.TextBox3.Value = "" Then MsgBox "信息有空值,請確認!": Exit Sub

If MsgBox("是否要保存記錄?", vbOKCancel, "提示") = vbCancel Then Exit Sub

Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Dim myData() As Variant

Set cnADO = CreateObject("ADODB.Connection")

Set rsADO = CreateObject("ADODB.Recordset")

strPath = ThisWorkbook.FullName

cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties=excel 12.0;hdr=yes;imex=0;" _

& "data source=" & strPath

strSQL = "SELECT * FROM [數據7$]"

rsADO.Open strSQL, cnADO, 1, 3

If UserForm1.TextBox1.Enabled = False Then 編輯的保存

If rsADO.RecordCount > 0 Then rsADO.MoveFirst

Do While Not rsADO.EOF

If Trim(rsADO.Fields(0)) = UserForm1.TextBox1.Value Then

rsADO.Fields(1) = UserForm1.TextBox2.Value

rsADO.Fields(2) = UserForm1.TextBox3.Value

rsADO.Update

GoTo 100

End If

rsADO.MoveNext

Loop

100:

UserForm1.TextBox1.Enabled = False

UserForm1.TextBox2.Enabled = False

UserForm1.TextBox3.Enabled = False

UserForm1.CommandButton6.Enabled = False

MsgBox ("保存OK!")

Else 錄入的保存

If rsADO.RecordCount > 0 Then

Do While Not rsADO.EOF

If Trim(rsADO.Fields(0)) = UserForm1.TextBox1.Value Then MsgBox "員工編號重復,請確認!": GoTo 110

rsADO.MoveNext

Loop

End If

rsADO.AddNew

rsADO.Fields(0) = UserForm1.TextBox1.Value

rsADO.Fields(1) = UserForm1.TextBox2.Value

rsADO.Fields(2) = UserForm1.TextBox3.Value

rsADO.Update

110:

UserForm1.TextBox1.Value = ""

UserForm1.TextBox2.Value = ""

UserForm1.TextBox3.Value = ""

UserForm1.TextBox1.SetFocus

MsgBox ("保存OK!")

End If

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代碼解釋:保存的時候有兩種情況:一個是后面講到的的錄入數據后的保存;一個是修改記錄的保存,兩者的有所區別,這里是用TextBox1.Enabled的屬性作為判斷的依據,保存的代碼是rsADO.Update

.這里要特別注意的是數據庫在連接時的設置:imex=0。

4 在"開始"按鈕中相關代碼:

If Right(Application.Caller, 1) = 5 Then 編輯記錄

UserForm1.CommandButton1.Enabled = True

UserForm1.CommandButton4.Enabled = True

UserForm1.CommandButton5.Enabled = True

End If

代碼解釋: 當按下"開始"按鈕后的按鈕1、4、5才能響應動作。

下面看代碼的截圖:

編輯數據表的操作(工作表數據與UserForm窗口的交互)(2)

編輯數據表的操作(工作表數據與UserForm窗口的交互)(3)

編輯數據表的操作(工作表數據與UserForm窗口的交互)(4)

代碼的運行:

1

編輯數據表的操作(工作表數據與UserForm窗口的交互)(5)

編輯數據表的操作(工作表數據與UserForm窗口的交互)(6)

編輯數據表的操作(工作表數據與UserForm窗口的交互)(7)

編輯數據表的操作(工作表數據與UserForm窗口的交互)(8)

編輯數據表的操作(工作表數據與UserForm窗口的交互)(9)

今日內容回向:

1 如何實現記錄的編輯和保存?

2 連接ADO連接EXCEL中,為了實現編輯和保存要進行什么設置?

歡迎分享轉載→http://www.avcorse.com/read-223546.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖