Access交流中心

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

[求助]共用模块和插入记录问题

sunny  发表于:2009-10-16 09:28:22  
复制

 

 

 

 

点击下载此附件

 

Top
trynew 发表于:2009-10-16 10:35:04

通常要共用一个模块或函数有两个方法:

一个是添加一个函数的参数,指明由哪里调用或者如何处理;

另一个就是在函数中增加语句,自己去判断由哪里调用或者如何处理,大多数是由读取一个公用变量、判断某个窗体是否打开、或者根据screen.ActiveForm 、screen.ActiveControl的值判定调用者,然后分别进行不同处理。

 

方法一较为精确,但如果是要修改程序,则要对全部调用此函数的地方一一进行修改。方法二则不需要对调用函数的语句查找修改,只修改函数本身即可,较为方便。

 

楼主可使用方法二,修改:

strsql = "SELECT 计算机名, 操作员, 操作描述 FROM 操作日记"

 

替换成如下语句即可:

        '根据窗体_打板录入1是否打开判断往那个表插入记录
        If CurrentProject.AllForms("窗体_打板录入1").IsLoaded Then
            strsql = "SELECT 计算机名, 操作员, 操作描述 FROM 操作日记1"
        Else
            strsql = "SELECT 计算机名, 操作员, 操作描述 FROM 操作日记"
        End If

点击下载此附件

sunny 发表于:2009-10-16 11:25:48

感谢trynew,共用模块又了解多一点

 

修改复期为什么提示数目与目标字段数目不同?代码是这样的:

 

Private Sub Form_BeforeUpdate(Cancel As Integer)

 

If Me.回复日期 <> Me.jfq Then


If MsgBox("是否修改此复期?", vbYesNo + 32, "提示信息") = vbYes Then
        DoCmd.SetWarnings False
        DoCmd.RunSQL "INSERT INTO [打板历史复期] ([编号],[零件名称],[负责人],[要求日期],[旧复期])" & _
        "valueS ('" & Me.编号 & "'&'" & Me.零件名称 & "','" & Me.负责人 & "'," & _
        "#" & Me.要求日期 & "#,#" & Me.jfq & "#)"
       
DoCmd.SetWarnings True
        MsgBox "复期修改成功!"
    Else
            MsgBox "复期未变动!"
            Me.Undo
            Exit Sub
    End If
End If



sunny 发表于:2009-10-16 12:16:21

找到了问题所在了,语句有错误:

 

"valueS ('" & Me.编号 & "'&'" & Me.零件名称 & "','" & Me.负责人 & "'," & _

"valueS ('" & Me.编号 & "','" & Me.零件名称 & "','" & Me.负责人 & "'," & _



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