Access交流中心

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

Access开发平台学习中的常见问题解答

钱玉炜  发表于:2008-01-22 09:16:20  
复制

1.点击新增按钮不打开新增窗体 
检查新增窗体的窗体名是否为_CHILD窗体名加上_ADD

2.修改窗体打不开
检查_child窗体中的控件是否有获得焦点事件,窗体命名是否为_child_edit,并检查是否定义了全局变量
控件获得焦点事件例子如下:
Private Sub ygId_GotFocus()
On Error GoTo Err_ygId_GotFocus:
selectstr = Me.ygId
Forms!usysfrmMain!labFind.Tag = 1           '打开查询窗体
Forms!usysfrmMain!btnEdit.Tag = 999         '打开修改窗体
Exit_ygId_GotFocus:
Exit Sub
Err_ygId_GotFocus:
Resume Exit_ygId_GotFocus
end sub

3修改窗体打开后没有显示数据
检查窗体数据源设置的语句是否正确,如
Private Sub Form_Load()
Me.RecordSource = "SELECT * FROM tblCodeyg WHERE ygId = '" & selectstr & "'"
end sub
如果出现窗体没有数据,那应该首先检查selectstr变量是否定义了,然后检查selectstr的类型是否和ygid一致,再检查_child窗体中是否有
selectstr = Me.ygId这一句,如果selectstr和ygid都为数值型变量上面语句应改为Me.RecordSource = "SELECT * FROM tblCodeyg WHERE ygId = " & selectstr

4.查找窗体出错,提示输入参数
检查查询中的字段的别名是否和查询窗体中的代码一致,如:
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)
End Sub
检查代码中报销日期,类别名称,员工姓名,报销金额,报销摘要是否和查询中的一致

5.按了查找按钮没显示平台自带的查询窗体,而是显示ACCESS自带的查找窗口
检查_child窗体中有获得焦点事件的控件是否为打开窗体后第一个获得焦点的控件

6.删除,修改,新增后子窗体不立刻刷新数据
举例说明,删除代码如下:
Public Sub btnDel()
If MsgBox("您确认要删除吗?", vbYesNo + vbInformation, Forms!usysfrmLogin.Caption) = vbYes Then
DoCmd.Echo False
Call AccHelp_DeleteFldstrRow ("tblCodeyg", "ygId", selectstr)
Forms!usysfrmMain!frmChild.SourceObject = "frmyg_child"
DoCmd.Echo True
End If
End Sub
这里的Forms!usysfrmMain!frmChild.SourceObject = "frmyg_child"就是刷新子窗体数据的,没有这一行删除后子窗体中数据就不会刷新,新增修改类似

7.报表打开不了
在普及版中打开报表的事件为btnPreview不是btnprint,如下
Public Sub btnPreview()
DoCmd.OpenReport "rptBxmx", acViewPreview
End Sub

8.找不到控件
请重新注册MSCOMCTL.OCX,MSCOMCT2.OCX两个控件,方法是双击“注册控件.bat”文件
 

 

Top
钱玉炜 发表于:2010-04-16 15:48:44
tbl_ 成品目录-分 表名称窗体名称不要出现"-"这样的符号,而且你的tbl和后面的名称之间还多个空格

Lu 发表于:2010-04-30 14:21:22

部门和用户权限设置时出错:

无法显示以下信息:



钱玉炜 发表于:2010-05-06 13:29:16
Lu 可以跟我远程看下,你发的第一个图看不到

ben 发表于:2011-01-01 16:47:42

我在开发过程中还是出现了新增后无法刷新上一级窗体数据的情况,查看了代码始终看不出为什么。我的代码如下:

 

============================================================

....前面是一些判断字段是否为空的语句,就不写上了。

If IsLoaded("usysfrmMain") Then
        DoCmd.Echo False
        MsgBox "刷新开始"
        Forms!usysfrmMain!frmChild.SourceObject = "frm_Contacter_child"
        MsgBox "刷新结束"
        DoCmd.Echo True
End If
   

DoCmd.Close acForm, "frm_Contacter_child_add"

============================================================

 

执行代码,可以看到 rms!usysfrmMain!frmChild.SourceObject = "frm_Contacter_child" 这条语句有执行,但是frm_Contacter_child窗体中的列表数据始终没有刷新,要退出此窗体再进入才会刷新。

 

跟frm_Contacter_child窗体的属性设置有关吗?



总记录:24篇  页次:2/2 9 7 1 2 :