设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2654|回复: 9
打印 上一主题 下一主题

[与其它组件] [求助]记录导出 在线等~~~

[复制链接]
跳转到指定楼层
1#
发表于 2006-11-27 18:33:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

问题1:dcount函数碰到新问题了,在查询状态下,单击子窗体任一条记 录,然后点“删除当前记录”按扭,怎么提示“数据类型不匹配呢?”,找来找去找不到问题出在哪里。所有的记录都是以“材料ID”为标示,且是唯一性的,所以这个文本框将是隐藏的。

问题2:导出子窗体的数据时,子窗体控件有设Me.材料类别查询子窗体.Form.Filter = strWhere,查询结果也是对的,为什么导出时总是导出所有的数据呢?

问题3:导出为EXCEL报表时,在子窗体中如果不用“On Error Resume Next”语句,提示出错,属性不对,why? why? why?




[此贴子已经被作者于2006-11-27 11:23:00编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-11-27 19:00:00 | 只看该作者
我也比较关注
3#
 楼主| 发表于 2006-11-27 21:29:00 | 只看该作者
[em10][em10][em10]
4#
发表于 2006-11-27 21:33:00 | 只看该作者
第一个问题,去掉二个单引号。

第二个问题,改用vba吧。

第三个问题,把这段的功能改到主窗体执行比较好。
5#
 楼主| 发表于 2006-11-27 22:23:00 | 只看该作者
啊,谢谢Joe5525601,第三个问题还有点疑问,如果放在主窗体中,应该放在主窗体的什么事件中呢?
6#
发表于 2006-11-27 22:28:00 | 只看该作者
放在“查询”这个按钮的事件中的最后面。就是筛选功能的代码后面。
7#
 楼主| 发表于 2006-11-27 22:29:00 | 只看该作者
还有,如果我想用VBA进行批量删除记录,如何知道我删了多少条记录?能给一个VBA例子吗?
8#
 楼主| 发表于 2006-11-27 22:35:00 | 只看该作者
以下是引用Joe5525601在2006-11-27 14:28:00的发言:
放在“查询”这个按钮的事件中的最后面。就是筛选功能的代码后面。

那没有办法实现点击子窗体控件中的任一条记录,记录内容就引用到窗体的文本框中,以便于修改

应该怎么改良呢?

原子窗体中代码:

Private Sub Form_Current() '作用:单击本子窗体控件后使记录引用到窗体文本框中,达到可编辑的目的。
On Error Resume Next
If Me.Parent.Form!fm_operate2 = 2 Then  '在查询的状态下(fm_operate2 = 2),操作有效
    Me.Parent.Form.材料ID.Value = [材料ID]
   
    Me.Parent.Form.钢材代码.Value = [钢材代码]
   
    Me.Parent.Form.钢材名称.Value = [钢材名称]
   
    Me.Parent.Form.钢材种类.Value = [钢材种类]
   
    Me.Parent.Form.单位.Value = [单位]
   
    Me.Parent.Form.规格.Value = [规格]
   
    Me.Parent.Form.备注.Value = [备注]
    Me.Parent.Form.cmdel.Enabled = True
    Me.Parent.Form.cmedit.Enabled = True
End If

End Sub

原“查询”按扭代码:Private Sub cmask_Click()  '查询记录

strWhere = ""
On Error GoTo Err_cmask_Click

If (IsNull(Me.钢材代码) = False And Trim(Me.钢材代码) <> "") Then strWhere = strWhere & "([钢材代码] like '*" & Me.钢材代码 & "*') AND "

If (IsNull(Me.钢材名称) = False And Trim(Me.钢材名称) <> "") Then strWhere = strWhere & "([钢材名称] like '*" & Me.钢材名称 & "*') AND "

If (IsNull(Me.钢材种类) = False And Trim(Me.钢材种类) <> "") Then strWhere = strWhere & "([钢材种类] like '*" & Me.钢材种类 & "*') AND "

If (IsNull(Me.规格) = False And Trim(Me.规格) <> "") Then strWhere = strWhere & "([规格] like '*" & Me.规格 & "*') AND "

If (IsNull(Me.备注) = False And Trim(Me.备注) <> "") Then strWhere = strWhere & "([备注] like '*" & Me.备注 & "*') AND "

If (IsNull(Me.单位) = False And Trim(Me.单位) <> "") Then strWhere = strWhere & "([单位] like '*" & Me.单位 & "*') AND "


If Len(strWhere) > 0 Then strWhere = Left(strWhere, Len(strWhere) - 5)
Debug.Print strWhere

Me.材料类别查询子窗体.Form.Filter = strWhere
Me.材料类别查询子窗体.Form.FilterOn = True
Me.材料类别查询子窗体.Requery

Exit_cmask_Click:
    Exit Sub

Err_cmask_Click:
    MsgBox Err.Description
    Resume Exit_cmask_Click
   
End Sub
9#
发表于 2006-11-28 19:25:00 | 只看该作者
我估计,你的目的应该是添加,修改,删除记录。其实可以简单一些的,不过不想动了,还是在你的实例里写了代码。供你参考

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
10#
发表于 2008-5-19 13:56:32 | 只看该作者
正在找这些方法,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-11 04:44 , Processed in 0.101330 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表