<output id="os3gq"><ruby id="os3gq"></ruby></output>

    1. <mark id="os3gq"></mark>
    2. Access交流中心

      北京 | 上海 | 天津 | 重慶 | 廣州 | 深圳 | 珠海 | 汕頭 | 佛山 | 中山 | 東莞 | 南京 | 蘇州 | 無錫 | 常州 | 南通 | 揚州 | 徐州 | 杭州 | 溫州 | 寧波 | 臺州 | 福州 | 廈門 | 泉州 | 龍巖 | 合肥 | 蕪湖 | 成都 | 遂寧 | 長沙 | 株洲 | 湘潭 | 武漢 | 南昌 | 濟南 | 青島 | 煙臺 | 濰坊 | 淄博 | 濟寧 | 太原 | 鄭州 | 石家莊 | 保定 | 唐山 | 西安 | 大連 | 沈陽 | 長春 | 昆明 | 蘭州 | 哈爾濱 | 佳木斯 | 南寧 | 桂林 | ???/a> | 貴陽 | 西寧 | 烏魯木齊 | 包頭 |

      回復 加入收藏帖  復制
      我要提問 帖子上移

      Access開發平臺新增,修改,刪除,查找VBA代碼詳解

      錢玉煒 等級: 貴賓★★★★★ 積分:3033 金幣:15640 來自:江陰Access交流中心 發表于:2008-11-11 21:15:20   已結帖
      樓主

      以Access開發平臺專業版報銷教程中的報銷明細的新增修改刪除查找為例來詳細說明下各代碼的作用
      以下代碼是制作完成后的各個窗體的所有代碼,具體哪一部分代碼負責新增,哪一部分代碼負責修改,可以在前面的教程中找到

      首先是frmBxmx_child窗體,所有功能都做好以后窗體中的代碼應該是如下所示:
      Private Sub報銷編號_GotFocus()                     -------機型代碼獲得焦點事件
      On Error GoTo Err_報銷編號_GotFocus:     -------錯誤處理語句,出錯的時候轉到Err_機型代碼_GotFocus:執行
      strSelectID = Me. 報銷編號                               -------給變量賦值,使strselectID等于控件機型代碼的值      
      Forms!usysfrmMain!btnEdit.Tag = 999        -------這是個判斷條件,當其大于1時點擊"修改"按鈕時,平臺就會自動打開"_Edit"窗體
      Forms!usysfrmMain!labFind.Tag = 1            -------同上,當其等于1時點擊查詢按鈕時,打開平臺內的查詢窗體  
      Exit_報銷編號_GotFocus:       
          Exit Sub
      Err_機型代碼_GotFocus:
          Resume Exit_機型代碼_GotFocus
      End Sub
      Private Sub Form_Timer()                                  ------窗體計時器事件
          Acchelp_FindStrRecord (g_CurrentSelectStrID)  ------利用平臺函數acchelp_findstrrecord找到修改前鼠標所選擇的記錄
          '計時器執行一次后不再執行
          Me.TimerInterval = 0                                        ------設定刷新時間為0
      End Sub
      Public Sub btnDel()                                             ------刪除代碼
          If MsgBox("您確認要刪除嗎?", vbYesNo + vbInformation, Forms!usysfrmLogin.Caption) = vbYes Then -----判斷提示框的值,當值為vbyes的時候執行下面代碼,vbno的時候跳出代碼
              DoCmd.Echo False                           ------防止屏幕閃動
              Call acchelp_deletefldstrrow("tblBxmx ", " mxId ", selectstr)         ------調用平臺自定義函數AccHelp_DeleteFldStrRow,函數的詳細說明請看平臺幫助第九章
              Forms!usysfrmMain!frmChild.SourceObject = "frmBxmx_child" ------重新加載子窗體frmBxmx_child,以刷新數據子窗體數據
              DoCmd.Echo True           ------打開屏幕閃動
          End If
      End Sub
      Public Sub btnFind()                   -------查詢按鈕單擊事件
          DoCmd.OpenForm "usysfrmFind"   -------打開查詢窗體
          '文本型對應 3 ,日期型對應 1 ,數值型對于 2      -------查詢不同的字段類型的時候,對應不同的數字來表示
          Forms!usysfrmFind!cobfldName.RowSource = "報銷日期;1;類別名稱;3;員工姓名;3;報銷金額;2;報銷摘要;3;"   -------設置需要查詢的字段,已經設定該查詢字段的數據類型
          '指定查詢數據來源
          Forms!usysfrmFind!labDataSource.Caption = "qryBxmx"
      End Sub
      Public Sub FindEnd()                            ----------------查詢結束后執行的過程
          Forms!usysfrmMain!frmChild.Form.RecordSource = Acchelp_ChildFormRecordSource("qryBxmx", "報銷編號", True)    -----------刷新子窗體數據
          strRptReSource = Forms!usysfrmMain!frmChild.Form.RecordSource              ---------讓定義的變量變量等于當前查詢結束后子窗體的數據源
      End Sub


       

       

      access培訓  誠聘access開發人員

          錢玉煒
            獲得社區協助:請教問題(即發帖)8篇,其中獲得解決的6篇;
            協助社區成員:協助他人(即回帖)1094篇,其中被設為【最佳答案】的346篇;
            協助我們社區:發布技術文章391篇,邀請了573名新會員注冊本社區(如何邀請會員注冊,詳見:http://www.beijingfeeling.com/sitehelp.asp)。
      Top

      掃描下方工作人員的微信二維碼加微信,邀您加入Access課堂微信群,進入一個技術交際圈:

      網站工作人員微信

      錢玉煒 等級:貴賓★★★★★ 積分:3033 金幣:15640 來自:江陰Access交流中心 發表于2009/1/17 9:00:08 
      1樓 得分: 0
      以下是frmBxmx_child_add窗體的所有代碼:
      Private Sub cmd_Save()            --------------定義cmd_Save過程,執行數據新增
          Dim rst As DAO.Recordset      --------------定義DAO記錄集
          If IsNull(Me.bxrq) Then       --------------判斷報銷日期是否為空,如果為空,則彈出對話框提示,下同
              MsgBox "請輸入報銷日期!", vbCritical, "提示:"
              Me.bxrq.SetFocus
              Exit Sub
          End If
          If IsNull(Me.lbId) Then
              MsgBox "請輸入報銷類別!", vbCritical, "提示:"
              Me.lbId.SetFocus
              Exit Sub
          End If
          If IsNull(Me.ygId) Then
              MsgBox "請輸入員工姓名!", vbCritical, "提示:"
              Me.ygId.SetFocus
              Exit Sub
          End If
      If IsNull(Me.bxje) Then
              MsgBox "請輸入報銷金額!", vbCritical, "提示:"
              Me.bxje.SetFocus
              Exit Sub
      End If
      Me.Refresh                  --------------數據輸入完畢后刷新一下窗體控件


          錢玉煒
            獲得社區協助:請教問題(即發帖)8篇,其中獲得解決的6篇;
            協助社區成員:協助他人(即回帖)1094篇,其中被設為【最佳答案】的346篇;
            協助我們社區:發布技術文章391篇,邀請了573名新會員注冊本社區(如何邀請會員注冊,詳見:http://www.beijingfeeling.com/sitehelp.asp)。
      麥田 等級:管理員★★★★★ 積分:37878 金幣:65080 來自:上海Access交流中心 發表于2009/2/9 14:33:04 
      2樓 得分: 0
          If MsgBox("您確認要保存嗎?", vbOKCancel + vbInformation, "提示") = vbOK Then      ------彈出對話框,詢問用戶是否需要保存數據,如果選擇是,則執行以下代碼
              Set rst = CurrentDb.OpenRecordset("tblBxmx", dbOpenDynaset)            ------設置記錄集為表tblBxmx
              rst.AddNew            ---------開始新增數據
              rst("mxId") = acchelp_autoid("M", 10, "tblBxmx", "mxId")             ---------用平臺函數設置編號字段
              rst("bxrq") = Me.bxrq          ---------讓表中的bxrq字段等于當前窗體bxrq控件的值,下同
              rst("lbId") = Me.lbId
              rst("ygId") = Me.ygId
              rst("bxje") = Me.bxje
              rst("bxzy") = Me.bxzy
              rst.Update                                                     ----------新增完畢后更新一下記錄集
              rst.Close            ----------關閉記錄集
              Set rst = Nothing                                               ----------清空記錄集
              '刷新數據


          希望我的回答能解決了您的問題,或者所附上的這些信息對您有所幫助!如有任何疑問或需要進一步幫助,請您直接在本站發貼,我們非常樂意幫助您解決問題!
          如果我的回答已經解決了您的問題,請點擊上方的“最佳答案”,這樣本帖子就不會在“待解決問題區”顯示了,以方便大家對那些正在等待解決的帖子給予關注!
          麥田  [協助社區成員回帖5644篇,其中【最佳答案】2153篇;發布技術文章1627篇。]
          UMVSoft在線支持工程師
          http://www.umvsoft.com
          QQ:3002789054 點擊這里給麥田發消息
          如果您沒有注冊這個論壇,請單擊下面的鏈接進行注冊,與我在論壇進行交流:
          http://www.beijingfeeling.com/reg/reg.asp?userid=11
          本貼子以“現狀”提供且沒有任何擔保,同時也沒有授予任何權利。
      麥田 等級:管理員★★★★★ 積分:37878 金幣:65080 來自:上海Access交流中心 發表于2009/2/9 14:33:44 
      3樓 得分: 0
              If IsLoaded("usysfrmMain") Then
                  DoCmd.Echo False
                  Forms!usysfrmMain!frmChild.SourceObject = "frmBxmx_child"         --------------重新加載一下子窗體,以刷新數據
                  DoCmd.Echo True
              End If
              MsgBox "保存成功!", vbInformation, "提示"
              Me.bxrq = Null                                                     ---------------讓窗體里的控件清空,下同
              Me.lbId = Null
              Me.ygId = Null
              Me.bxje = Null
              Me.bxzy = Null
          End If
      End Sub
      Private Sub cmdOK_Click()
          cmd_Save                                                           ------------單擊確定按鈕,執行cmd_Save過程
      End Sub
      Private Sub cmdCancel_Click()
          DoCmd.Close acForm, Me.Name                 -----------單擊取消按鈕關閉當前窗體
      End Sub
      Private Sub cmdBX_ButtonClick(ByVal Button As Object)
          DoCmd.OpenForm "frm_CodeBxlb_child_Add"          ----------打開報銷類別新增窗體,用來快捷添加
      End Sub
      Private Sub cmdYG_ButtonClick(ByVal Button As Object)
          DoCmd.OpenForm "frmyg_child_Add"                        --------------打開員工信息新增窗體,快捷添加
      End Sub

          希望我的回答能解決了您的問題,或者所附上的這些信息對您有所幫助!如有任何疑問或需要進一步幫助,請您直接在本站發貼,我們非常樂意幫助您解決問題!
          如果我的回答已經解決了您的問題,請點擊上方的“最佳答案”,這樣本帖子就不會在“待解決問題區”顯示了,以方便大家對那些正在等待解決的帖子給予關注!
          麥田  [協助社區成員回帖5644篇,其中【最佳答案】2153篇;發布技術文章1627篇。]
          UMVSoft在線支持工程師
          http://www.umvsoft.com
          QQ:3002789054 點擊這里給麥田發消息
          如果您沒有注冊這個論壇,請單擊下面的鏈接進行注冊,與我在論壇進行交流:
          http://www.beijingfeeling.com/reg/reg.asp?userid=11
          本貼子以“現狀”提供且沒有任何擔保,同時也沒有授予任何權利。
      麥田 等級:管理員★★★★★ 積分:37878 金幣:65080 來自:上海Access交流中心 發表于2009/2/9 14:34:00 
      4樓 得分: 0

      以下是修改窗體的代碼:
      Private Sub cmdCancel_Click()       -----------單擊取消按鈕事件
          Me.Undo          -----------撤銷修改
          DoCmd.Close acForm, Me.Name     -----------關閉當前窗體
      End Sub

      Private Sub cmdOK_Click()       -----------單擊確定按鈕事件
          If IsNull(Me.bxrq) Then       -----------判斷控件是否為空,如果為空則提示要求輸入的信息
              MsgBox "請輸入報銷日期!", vbCritical, "提示:"
              Me.bxrq.SetFocus
              Exit Sub
          End If
          If IsNull(Me.lbId) Then
              MsgBox "請輸入報銷類別!", vbCritical, "提示:"
              Me.lbId.SetFocus
              Exit Sub
          End If
          If IsNull(Me.ygId) Then
              MsgBox "請輸入員工姓名!", vbCritical, "提示:"
              Me.ygId.SetFocus
              Exit Sub
          End If
          If IsNull(Me.bxje) Then
              MsgBox "請輸入報銷金額!", vbCritical, "提示:"
              Me.bxje.SetFocus
              Exit Sub
          End If
          Me.Refresh         ------------刷新一下窗體
      DoCmd.Echo False
      Forms!usysfrmMain!frmChild.SourceObject = "frmBxmx_child"         --------------修改完畢后刷新一下子窗體
          DoCmd.Echo True
          '觸發子窗體計時器事件
          Forms!usysfrmMain!frmChild.Form.TimerInterval = 300
          DoCmd.Close acForm, Me.Name      ----------關閉當前窗體
      End Sub

      Private Sub Form_Load()
          Me.RecordSource = "Select * FROM tblBxmx Where mxId = '" & selectstr & "'"      ------------窗體加載事件,加載的時候設置窗體的數據源為后面的SQL語句所查詢到的數據
      End Sub



          希望我的回答能解決了您的問題,或者所附上的這些信息對您有所幫助!如有任何疑問或需要進一步幫助,請您直接在本站發貼,我們非常樂意幫助您解決問題!
          如果我的回答已經解決了您的問題,請點擊上方的“最佳答案”,這樣本帖子就不會在“待解決問題區”顯示了,以方便大家對那些正在等待解決的帖子給予關注!
          麥田  [協助社區成員回帖5644篇,其中【最佳答案】2153篇;發布技術文章1627篇。]
          UMVSoft在線支持工程師
          http://www.umvsoft.com
          QQ:3002789054 點擊這里給麥田發消息
          如果您沒有注冊這個論壇,請單擊下面的鏈接進行注冊,與我在論壇進行交流:
          http://www.beijingfeeling.com/reg/reg.asp?userid=11
          本貼子以“現狀”提供且沒有任何擔保,同時也沒有授予任何權利。
      pbcwn2008 等級:普通會員 積分:12 金幣:0 來自:臨沂Access交流中心 發表于2011/12/17 16:52:37 
      5樓 得分: 0
      總結的太好了,謝謝樓主,謝謝平臺開發團隊的辛勤勞動?。?!

          很高興與您就本帖子進行交流,如果我的回答已經解決了您的問題,請點擊上方的“最佳答案”,這樣本帖子就不會在“待解決問題區”顯示了,我也將獲得2個積分獎勵,并不會減少您的積分!
          pbcwn2008
            獲得社區協助:請教問題(即發帖)16篇,其中獲得解決的6篇;
            協助社區成員:協助他人(即回帖)9篇,其中被設為【最佳答案】的1篇;
            協助我們社區:發布技術文章0篇,邀請了0名新會員注冊本社區(如何邀請會員注冊,詳見:http://www.beijingfeeling.com/sitehelp.asp)。
      總記錄:5篇  頁次:1/1 9 1 :
      您還沒有在Access軟件網登錄不能回復帖子
      • 你沒有登錄,請點擊后面鏈接登錄:登錄
      • 如果你沒有注冊,請點擊后面鏈接注冊:注冊,注冊完成后,請再次訪問本頁功能。
       
      湖北11选5