Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

平台保存按钮时编译错误:变量未定义。代码如下,请赐教

呆萌萌  发表于:2015-05-14 09:37:25  
复制

Form_frm02  产能基础_Edit 窗体里的程序代码

Option Compare Database
Option Explicit
Private Sub Form_Load()
    On Error GoTo ErrorHandler
    Dim strSQL        As String
    Dim cnn           As Object 'ADODB.Connection
    Dim rst           As Object 'ADODB.Recordset

    ApplyTheme Me
    If IsNull(Me.OpenArgs) Then
        Me.DataEntry = True
    End If
    If Me.DataEntry Then
        Exit Sub
    End If
    Me.btnSave.Enabled = Me.AllowEdits

    Set cnn = CurrentProject.Connection

    strSQL = "SELECT * FROM [02 产能基础表] WHERE [工厂]=" & SQLText(Me.OpenArgs)
    Set rst = OpenADORecordset(strSQL, , cnn)
    Me![工厂] = rst![工厂]
    Me![产线] = rst![产线]
    Me![物料编码] = rst![物料编码]
    Me![物料描述] = rst![物料描述]
    Me![规] = rst![规]
    Me![格] = rst![格]
    Me![单位] = rst![单位]
    Me![年份] = rst![年份]
    Me![月份] = rst![月份]
    Me![单位小时有效产能] = rst![单位小时有效产能]
    Me![日有效作业时间] = rst![日有效作业时间]
    rst.Close

ExitHere:
    Set rst = Nothing
    Set cnn = Nothing
    Exit Sub

ErrorHandler:
    RDPErrorHandler Me.Name & ": Sub Form_Load()"
    Resume ExitHere
End Sub

Private Sub btnSave_Click()
    On Error GoTo ErrorHandler
    Dim strWhere      As String
    Dim strSQL        As String
    Dim cnn           As Object 'ADODB.Connection
    Dim rst           As Object 'ADODB.Recordset

    If Not CheckRequired(Me) Then Exit Sub
    If Not CheckTextLength(Me) Then Exit Sub

    Set cnn = CurrentProject.Connection

    strSQL = "SELECT * FROM [02 产能基础表] WHERE [工厂]=" & SQLText(Me![工厂])
    Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
    If rst.EOF Then
        rst.AddNew
    End If
    rst![工厂] = Me![工厂]
    rst![产线] = Me![产线]
    rst![物料编码] = Me![物料编码]
    rst![物料描述] = Me![物料描述]
    rst![规] = Me![规]
    rst![格] = Me![格]
    rst![单位] = Me![单位]
    rst![年份] = Me![年份]
    rst![月份] = Me![月份]
    rst![单位小时有效产能] = Me![单位小时有效产能]
    rst![日有效作业时间] = Me![日有效作业时间]
    rst.Update
    rst.Close

    Form_frm02 产能基础.RefreshDataList      '调用子窗体里自定义刷新函数                          编译错误:变量未定义
    MsgBoxEx "保存成功!", vbInformation

    If Me.DataEntry Then
        ClearControlValues Me
    Else
        DoCmd.Close acForm, Me.Name, acSaveNo
    End If

ExitHere:
    Set rst = Nothing
    Set cnn = Nothing
    Exit Sub

ErrorHandler:
    RDPErrorHandler Me.Name & ": Sub btnSave_Click()"
    Resume ExitHere
End Sub

Private Sub btnCancel_Click()
    On Error Resume Next
    DoCmd.Close acForm, Me.Name, acSaveNo
End Sub

 

 

 

 

 

Top
王阳 发表于:2015-05-14 09:37:40


王阳 发表于:2015-05-14 09:37:56


王阳 发表于:2015-05-14 09:38:53
Form_frm02  产能基础  窗体里的代码

Option Compare Database
 Option Explicit
 Private mclsQuery           As GeneralQuery
 Private mdctPermissionList  As Collection

Private Sub Form_Open(Cancel As Integer)
     Set mdctPermissionList = LoadPermissions("02 产能基础", Me)
     If Not mdctPermissionList("<Access Module>") Then
         Exit Sub
     End If
     ApplyTheme Me
     On Error Resume Next
     Me.btnAdd.Enabled = mdctPermissionList("新增")
     Me.btnEdit.Enabled = mdctPermissionList("编辑")
     Me.btnDelete.Enabled = mdctPermissionList("删除")
     Me.btnImport.Enabled = mdctPermissionList("导入")
     Me.btnExport.Enabled = mdctPermissionList("导出")
 End Sub

Private Sub Form_Load()
     On Error GoTo ErrorHandler

    LoadIcon Me.btnAdd_Image, "add.ico"
     LoadIcon Me.btnEdit_Image, "edit.ico"
     LoadIcon Me.btnDelete_Image, "delete.ico"
     LoadIcon Me.btnImport_Image, "import.ico"
     LoadIcon Me.btnExport_Image, "export.ico"
     LoadIcon Me.btnClose_Image, "db cancel.ico"

    Set mclsQuery = New GeneralQuery
     With mclsQuery
         .QueryForm = Me.sfrQuickQuery.Form
         .DataForm = Me.sfrList.Form
         .ClearFields
         .AddAllFields
         .FieldName = "工厂"
     End With
     Me.Recalc

ExitHere:
     Exit Sub

ErrorHandler:
     RDPErrorHandler Me.Name & ": Sub Form_Load()"
     Resume ExitHere
 End Sub

Public Sub RefreshDataList()
     Me.TimerInterval = 200
 End Sub

Private Sub Form_Timer()
     RequeryDataObject Me.sfrList
     If mclsQuery Is Nothing Then
         Call Form_Load
     Else
         mclsQuery.DataForm = Me.sfrList.Form
     End If
     Me.TimerInterval = 0
 End Sub

Private Sub Form_Resize()
     On Error Resume Next
     Dim lngHeight As Long

    Me.sfrQuickQuery.Width = Me.InsideWidth - Me.sfrQuickQuery.Left
     Me.sfrList.Width = Me.InsideWidth - Me.sfrList.Left
     lngHeight = Me.InsideHeight
     lngHeight = lngHeight - Me.Section(acHeader).Height - Me.Section(acFooter).Height
     Me.sfrList.Height = lngHeight - Me.sfrList.Top
 End Sub

Private Sub btnAdd_Click()
     On Error GoTo ErrorHandler

    DoCmd.OpenForm Me.Name & "_Edit", DataMode:=acFormAdd

ExitHere:
     Exit Sub

ErrorHandler:
     Select Case Err.Number
     Case errOpenActionWasCanceled, errOperationCanceledByUser
     Case Else
         RDPErrorHandler Me.Name & ": Sub btnAdd_Click()"
     End Select
     Resume ExitHere
 End Sub

Public Sub btnEdit_Click()
     On Error GoTo ErrorHandler

    If Me.sfrList.Form.CurrentRecord < 1 Then
         Exit Sub
     End If

    Me.sfrList.SetFocus
     RunCommand acCmdSelectRecord
     DoCmd.OpenForm FormName:=Me.Name & "_Edit", _
                    DataMode:=IIf(Me.btnEdit.Enabled, acFormEdit, acFormReadOnly), _
                    OpenArgs:=Me.sfrList![工厂]

ExitHere:
     Exit Sub

ErrorHandler:
     Select Case Err.Number
     Case errOpenActionWasCanceled, errOperationCanceledByUser
     Case Else
         RDPErrorHandler Me.Name & ": Sub btnEdit_Click()"
     End Select
     Resume ExitHere
 End Sub

Public Sub btnDelete_Click()
     On Error GoTo ErrorHandler
     Dim strMsg      As String

    If Me.sfrList.Form.CurrentRecord < 1 Then
         Exit Sub
     End If

    Me.sfrList.SetFocus
     RunCommand acCmdSelectRecord

    strMsg = "确定要刪除吗?"
     If MsgBoxEx(strMsg, vbQuestion + vbOKCancel) = vbCancel Then
         Exit Sub
     End If
     DAORunSQL "DELETE FROM [02 产能基础表] WHERE [工厂]=" & SQLText(Me.sfrList![工厂])
     Me.RefreshDataList
     Me.btnDelete.SetFocus

ExitHere:
     Exit Sub

ErrorHandler:
     RDPErrorHandler Me.Name & ": Sub btnDelete_Click()"
     Resume ExitHere
 End Sub

Public Sub btnImport_Click()
     On Error Resume Next
     ImportFromExcel "02 产能基础表"
     RequeryDataObject Me.sfrList
     mclsQuery.DataForm = Me.sfrList.Form
 End Sub

Public Sub btnExport_Click()
     On Error Resume Next

    If Me.sfrList.Form.CurrentRecord < 1 Then
         Exit Sub
     End If

    Me.sfrList.SetFocus
     ExportToExcel Me.sfrList.Form.Caption
 End Sub

Public Sub btnClose_Click()
     On Error Resume Next
     DoCmd.Close acForm, Me.Name, acSaveNo
     Me.Parent!sfrChild.SourceObject = "SysFrmMain_HomePage"
 End Sub


易勋 发表于:2015-05-14 09:45:03

http://www.accessoft.com/article-show.asp?id=8908

VBA代码查错出错调试方法二\去掉On Error GoTo ErrorHandler

 



王阳 发表于:2015-05-14 10:03:56

去掉以后和去掉之前显示的是一样的,怎么办



王阳 发表于:2015-05-14 10:27:22

我把表格名称里的空格去掉了就可以用了这是为什么?



杜超 发表于:2015-05-16 13:27:32
快速开发平台--刷新子窗体代码示例\RefreshDataList刷新窗体应用[Access软件网]
http://www.accessoft.com/article-show.asp?id=9015

易勋 发表于:2015-05-22 15:42:23
你的 窗体名称命名不规范,中间有空格,这样的情况下,引用需要在 名称外面加上 []

总记录:8篇  页次:1/1 9 1 :