Office中国论坛/Access中国论坛

标题: 出错:从窗体添加记录到表 [打印本页]

作者: lqp971    时间: 2012-1-6 01:14
标题: 出错:从窗体添加记录到表
详细见附件中窗体“input”[attach]47958[/attach]


作者: Henry D. Sy    时间: 2012-1-6 09:26
版本太高,打不开!
作者: lqp971    时间: 2012-1-6 22:14
啊,access 2007的啊,明天我转成2003的再发下哈。
希望好心人帮忙解决下,为了方便工作做的一个小东西。
作者: lqp971    时间: 2012-1-7 19:51
上传的2003版的,有空闲的兄弟姐妹们,帮忙看看哪里出问题了,谢谢
作者: Henry D. Sy    时间: 2012-1-8 00:04
lqp971 发表于 2012-1-7 19:51
上传的2003版的,有空闲的兄弟姐妹们,帮忙看看哪里出问题了,谢谢

第一个问题帮你解决了
  1. Private Sub Form_Current()
  2.     Me.Parent.[SaleOrder] = Me.SaleOrder
  3.     Me.Parent.[SMO] = Me.SMO
  4.     Me.Parent.[PN] = Me.PN
  5. End Sub
复制代码
2. 查找出需要修改的SMO后,更改主窗体的Status,点击Update后 子窗体数据更新,然后再Detail表中新生成一条同样的记录。
不明白什么意思
[attach]47982[/attach]
作者: Henry D. Sy    时间: 2012-1-8 01:10
不知道是不是这个意思
  1. Private Sub Command19_Click()
  2.     Dim strWhere As String
  3.     If Not IsNull(Me.SMOS) Then
  4.         strWhere = "smo='" & Me.SMOS & "'"
  5.         Me.InputSub.Form.Filter = strWhere
  6.         Me.InputSub.Form.FilterOn = True
  7.     Else
  8.         Me.InputSub.Form.FilterOn = False
  9.     End If
  10. End Sub

  11. Private Sub Update_Click()
  12. '修改Main表中的数据
  13.     Dim sSQL As String
  14.     If IsNull(Me.Status) Then
  15.         MsgBox "请先输入Status!!"
  16.         Exit Sub
  17.     End If
  18.     sSQL = "update [Main] set Status='" & _
  19.            Me.Status & "' where SMO='" & Me.SMO & "'"
  20.     CurrentProject.Connection.Execute sSQL
  21.     Me.InputSub.Requery
  22.     '添加一条数据到Datail表中
  23.     sSQL = "INSERT INTO Detail SELECT Main.* FROM Main where SMO='" & _
  24.            Me.SMO & "'"
  25.     CurrentProject.Connection.Execute sSQL
  26. End Sub
复制代码
[attach]47983[/attach]
不知道你为什么同样的记录要保存两次!!!
作者: lqp971    时间: 2012-1-8 21:31
Henry:
谢谢您的帮忙,好像不是我想要的第二个问题。
可能我没有表达清楚,我说下这个软件的使用思路吧,SMO就是零件维修的合同号,是每个维修过程的跟踪识别号。
Main表中的数据我是用来查询所有维修的现在状态,知道每个零件在哪个站位(status),Datail表中记录的是每个零件的维修过程,所以可能有很多条相同的数据,只是status,user,date几栏有变化。
我这样设计是为了方便后期的查询功能。
您的思路我理解,把表中Main的数据按照SMO直接搬到detail,所以这两个表中的数据是一样的,而且不能重复SMO,所以当零件转到另外一个部门维修时,修改status失效了。
效果如下:

                        Main 表中的数据(SMO唯一)                       
ID        SaleOrder                    SMO                      PN                Status           Date                  User
1        E575606-01        310001234         1234M56P07        Painting        2012/1/4 0:00        FSHA157
2        E123456-01        999999999             335-012-562-0        Machine        2012/1/3 0:00        FSHA999
                                               
                        Detail 表中的数据(SMO不唯一)                       
ID        SaleOrder                    SMO                  PN                Status            Date                  User
1        E575606-01        310001234         1234M56P07        Painting        2012/1/4 0:00        FSHA157
2        E123456-01        999999999         335-012-562-0        Machine        2012/1/3 0:00        FSHA999
3        E575606-01        310001234                1234M56P07        Painting        2012/1/8 0:00        FSHA333
4        E575606-01        310001234           1234M56P07        CLN                2012/1/12 0:00        FSHA444

麻烦了,再帮忙弄弄?{:soso_e151:}


作者: Henry D. Sy    时间: 2012-1-8 23:02
没感觉跟6楼的有什么两样
作者: lqp971    时间: 2012-1-9 08:30
[attach]48003[/attach]
这个SMO不能操作第二次。。。
作者: lqp971    时间: 2012-1-9 08:32
应该不要把ID栏一起插入吧?
作者: Henry D. Sy    时间: 2012-1-9 09:24
对,id是自动编号,追加时你不用理会他,其会自动输入。
作者: lqp971    时间: 2012-1-9 21:34
大哥,不行啊,添加不了,还是出现错误对话框(9楼的那个)……{:soso_e109:}
作者: Henry D. Sy    时间: 2012-1-9 21:50
不知道你的库是怎么回事,6楼的代码应该没有你所说的问题。
作者: xyhecho2002    时间: 2012-1-9 23:03
Henry D. Sy 发表于 2012-1-8 01:10
不知道是不是这个意思
不知道你为什么同样的记录要保存两次!!!

我也学习一下!
作者: lqp971    时间: 2012-1-10 21:03
还是谢谢henry大哥,受益匪浅,我再自己研究下。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3