Access交流中心

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

VBA代码问题

luoqin  发表于:2010-11-03 09:53:41  
复制

我设计一个记录输入窗体,位添加按钮写了一段代码,当我返回窗体输入一些信息点击添加提示如下信息:

   运行时错误'2158':

   除非控件获得焦点,否则您不能引用该控件的属性和方法。

请问这是什么原因,如何解决

 

Top
影子 发表于:2010-11-03 14:30:35
贴下代码吧。。。

羽扇子君 发表于:2010-11-03 14:58:14

应该是引用文本框(或组合框)的text属性时,控件去没有焦点。

解决方法,直接引用控件名,或引用控件Value属性



luoqin 发表于:2010-11-05 10:50:05
Private Sub Command33_Click()
  Set rs = New ADODB.Recordset
  If Text1.Text = "" Then        ' 提示错误的地方
  MsgBox "请你输入要想添加的问题的问题种类以及相关的所有信息!", vbOKOnly + vbExclamation, "警告!"
  Text1.SetFocus
  Exit Sub
  Else
  sql = "select * from chaxun where 问题种类='" & Trim(Text1.Text)
  sql = sql & "' and 发生日期='" & Trim(Text2.Text) & "' and 机种名='"
  sql = sql & Trim(Text3.Text) & "' and 品名='" & Trim(Text4.Text)
  sql = sql & "' and 品目CODE='" & Trim(Text5.Text) & "' and LOT No.='"
  sql = sql & Trim(Text6.Text) & "' and 不良项目='" & Trim(Text7.Text)
  sql = sql & "' and 问题内容='" & Trim(Text8.Text) & "'"
  Set rs = TransactSQL(sql)
  If rs.EOF = False Then
  MsgBox "该问题的记录已经存在,请核实后再添加!", vbOKOnly + vbExclamation, "警告!"
  Text1.SetFocus
  rs.Close
  Else
  sql = "select * from chaxun"
  Set rs = TransactSQL(sql)
  rs.AddNew
  rs.Fields(0) = Trim(Text1.Text)
  rs.Fields(1) = Trim(Text2.Text)
  rs.Fields(2) = Trim(Text3.Text)
  rs.Fields(3) = Trim(Text4.Text)
  rs.Fields(4) = Trim(Text5.Text)
  rs.Fields(5) = Trim(Text6.Text)
  rs.Fields(6) = Trim(Text7.Text)
  rs.Fields(7) = Trim(Text8.Text)
  rs.Update
  rs.Close
  MsgBox "该记录已经成功添加!", vbOKOnly + vbExclamation, "添加结束!"
  Call init
  End If
  End If
End Sub

luoqin 发表于:2010-11-05 10:52:07
Private Sub 商品出库_Click()
        Dim sql As String
        Dim rst As ADODB.Recordset
        Dim number As Integer
        If IsNull(Me![仓库编号]) Then  ‘提示错误的地方
           MsgBox "请选择仓库"
           DoCmd.GoToControl "仓库编号"
        ElseIf IsNull(Me![商品编号]) Then
          MsgBox "请输入商品编号"
          DoCmd.GoToControl "商品编号"
        ElseIf IsNull(Me![出库数量]) Then
          MsgBox "请输入数量"
          DoCmd.GoToControl "出库数量"
        ElseIf IsNull(Me![员工编号]) Then
          MsgBox "请输入员工编号"
          DoCmd.GoToControl "员工编号"
        ElseIf IsNull(Me![出库日期]) Then
          MsgBox "请输入日期"
          DoCmd.GoToControl "出库日期"
        ElseIf IsNull(Me![订单编号]) Then
          MsgBox "请输入员工编号"
          DoCmd.GoToControl "订单编号"
        ElseIf IsNull(Me![送货方式]) Then
          MsgBox "请输入日期"
          DoCmd.GoToControl "送货方式"
        Else
          sql = "select * from 商品 where"
          sql = sql & "[商品编号]=" & Me![商品编号]
          Set rst = New ADODB.Recordset
          rst.ActiveConnection = CurrentProject.Connection
          rst.CursorType = adOpenDynamic
          rst.LockType = adLockBatchOptimistic
          rst.Open sql
        If Not (rst.EOF) Then
  sql = "select * from 库存信息 where [仓库编号]=" & Me![仓库编号]
  sql = sql & "and[商品编号]=" & Me![商品编号]
  Set rst = New ADODB.Recordset
  rst.ActiveConnection = CurrentProject.Connection
  rst.CursorType = adOpenDynamic
  rst.LockType = adLockBatchOptimistic
  rst.Open sql
  If Not (rst.EOF) Then
     number = rst!当前库存数量
     number = number - Me![入库数量]
     rst!当前库存数量 = number
     rst.Close
     Set rst = Nothing
     sql = "当前库存数量为:" & number
     MsgBox sql
     Exit Sub
  Else
     rst.Close
     Set rst = Nothing
     MsgBox "系统中没有该商品信息,不能出库"
     Exit Sub
  End If
     sql = "select * from 出库记录"
     rst.Close
     Set rst = Nothing
      Set rst = New ADODB.Recordset
          rst.ActiveConnection = CurrentProject.Connection
          rst.CursorType = adOpenKeyset
          rst.LockType = adLockBatchOptimistic
          rst.Open sql
    With rst
    .AddNew
    !商品编号 = Me![商品编号]
    !数量 = Me![出库数量]
    !订单编号 = Me![订单编号]
    !出库日期 = Me![出库日期]
    !仓库编号 = Me![仓库编号]
    !经办员工编号 = Me![经办员工编号]
    !送货方式 = Me![送货方式]
    End With
    rst.Close
    Set rst = Nothing
Else
 rst.Close
 Set rst = Nothing
 MsgBox "系统中没有该商品信息,请先添加商品详细信息"
 Exit Sub
 Me.Visible = False
 End If
End If
End Sub

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