设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 6912|回复: 28
打印 上一主题 下一主题

[模块/函数] 帮忙看看这段新建记录代码有没有问题

[复制链接]
跳转到指定楼层
1#
发表于 2012-6-12 09:46:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yori2007 于 2012-6-12 09:49 编辑

不知道为什么,新建记录,新建以C开头的记录可以成功录入,而以V开头的不能录入。

Public coTBuyInvoice As New Collection

Public Sub NewTBuyInvoice()
On Error GoTo NewTBuyInvoice_Err
Dim mId As String
mId = InputBox("请输入发票号", "提示")
If mId & "" = "" Then
    Exit Sub
End If
If DCount("InvoiceId", "tbTBuyInvoice", "InvoiceId='" & mId & "'") <> 0 Then
    MsgBox "此发票号已经存在,请重新输入!", vbExclamation, "提示"
    Exit Sub
End If

'新建发票
Dim rs As New ADODB.Recordset
rs.Open "tbTBuyInvoice", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
        With rs
            .AddNew
            ![InvoiceId] = mId
            ![BuildDate] = Date
            ![BuildMan] = DLookup("EmployeeId", "tbEmployee", "UserName='" & mUserName & "'")
            .Update
        End With
        rs.Close
        Set rs = Nothing
        DoCmd.Requery
'打开新记录编辑
        Dim fm As Form
        Set fm = New Form_fmTBuyInvoice  ‘打开新窗口
        fm.FilterOn = True
        fm.Filter = "Me.InvoiceId='" & mId & "'"   ‘过滤
        fm.AllowAdditions = False  ‘表头不可编辑
        fm.Caption = "编辑发票" & mId
        fm.Visible = True
        coTBuyInvoice.Add Item:=fm, Key:=CStr(fm.Hwnd)
        Set fm = Nothing
NewTBuyInvoice_Exit:
    Exit Sub
NewTBuyInvoice_Err:
    MsgBox Err.Description
    Resume NewTBuyInvoice_Exit
End Sub

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-6-12 13:35:03 | 只看该作者
搞不明白新建记录为啥需要Filter
3#
 楼主| 发表于 2012-6-12 13:55:56 | 只看该作者
在新建的InvoiceId下建记录啊,关键问题是不知道coTBuyInvoice.Add Item:=fm, Key:=CStr(fm.Hwnd)
,这句话,有没有问题
4#
 楼主| 发表于 2012-6-12 16:20:20 | 只看该作者
求关注啊
5#
 楼主| 发表于 2012-6-12 18:32:43 | 只看该作者
求关注
6#
发表于 2012-6-12 19:29:41 | 只看该作者
If DCount("InvoiceId", "tbTBuyInvoice", "InvoiceId='" & mId & "'") <> 0 ThenDCount会降低效率,建议使用dlookup来检查
,其他问题你都没说,如果运行正常,就算了吧,等基础好了再来检查,毕竟每个人都编写习惯都不一样
7#
 楼主| 发表于 2012-6-12 19:50:35 | 只看该作者
新增记录,以V开头的数据会弹出空白窗口,以C开头的没问题
8#
发表于 2012-6-12 20:47:55 | 只看该作者
        fm.FilterOn = True
        fm.Filter = "Me.InvoiceId='" & mId & "'"   ‘过滤
调换一下顺序看看
fm.Filter = "Me.InvoiceId='" & mId & "'"   ‘过滤
fm.FilterOn = True
==========
我觉得你的代码效率不高,可能这样要好点:
On Error GoTo NewTBuyInvoice_Err
Dim mId As String
mId = InputBox("请输入发票号", "提示")
If mId = "" Then Exit Sub

If Nz(DLookup("InvoiceId", "tbTBuyInvoice", "InvoiceId='" & mId & "'"), "") = mId Then
    MsgBox "此发票号已经存在,请重新输入!", vbExclamation, "提示"
    Exit Sub
End If

'新建发票
'====================
Dim StrSql As String '不清楚你的字段类型,'UserName'为文本, #BuildDate#为日期
StrSql = "insert into tbTBuyInvoice(InvoiceId,BuildDate,BuildMan) "
StrSql = StrSql & " select '" & mId & "', #" & BuildDate & "#, '" & DLookup("EmployeeId", "tbEmployee", "UserName='" & mUserName & "'") & "'"

CurrentProject.Connection.Execute (StrSql)



'打开新记录编辑
        Dim fm As Form
        Set fm = New Form_fmTBuyInvoice  '打开新窗口
        fm.RecordSource = "select * from tbTBuyInvoice where InvoiceId='" & mId & "'"
        fm.AllowAdditions = False  '表头不可编辑
        fm.Caption = "编辑发票" & mId
        fm.Visible = True
        coTBuyInvoice.Add Item:=fm, Key:=CStr(fm.Hwnd)
        Set fm = Nothing
NewTBuyInvoice_Exit:
    Exit Sub
NewTBuyInvoice_Err:
    MsgBox Err.Description
    Resume NewTBuyInvoice_Exit
9#
发表于 2012-6-12 20:48:07 | 只看该作者
       fm.FilterOn = True
        fm.Filter = "Me.InvoiceId='" & mId & "'"   ‘过滤
调换一下顺序看看
fm.Filter = "Me.InvoiceId='" & mId & "'"   ‘过滤
fm.FilterOn = True
==========
我觉得你的代码效率不高,可能这样要好点:
On Error GoTo NewTBuyInvoice_Err
Dim mId As String
mId = InputBox("请输入发票号", "提示")
If mId = "" Then Exit Sub

If Nz(DLookup("InvoiceId", "tbTBuyInvoice", "InvoiceId='" & mId & "'"), "") = mId Then
    MsgBox "此发票号已经存在,请重新输入!", vbExclamation, "提示"
    Exit Sub
End If

'新建发票
'====================
Dim StrSql As String '不清楚你的字段类型,'UserName'为文本, #BuildDate#为日期
StrSql = "insert into tbTBuyInvoice(InvoiceId,BuildDate,BuildMan) "
StrSql = StrSql & " select '" & mId & "', #" & BuildDate & "#, '" & DLookup("EmployeeId", "tbEmployee", "UserName='" & mUserName & "'") & "'"

CurrentProject.Connection.Execute (StrSql)



'打开新记录编辑
        Dim fm As Form
        Set fm = New Form_fmTBuyInvoice  '打开新窗口
        fm.RecordSource = "select * from tbTBuyInvoice where InvoiceId='" & mId & "'"
        fm.AllowAdditions = False  '表头不可编辑
        fm.Caption = "编辑发票" & mId
        fm.Visible = True
        coTBuyInvoice.Add Item:=fm, Key:=CStr(fm.Hwnd)
        Set fm = Nothing
NewTBuyInvoice_Exit:
    Exit Sub
NewTBuyInvoice_Err:
    MsgBox Err.Description
    Resume NewTBuyInvoice_Exit
10#
发表于 2012-6-12 20:50:04 | 只看该作者
回复需要审核?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-27 13:31 , Processed in 0.107961 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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