Office中国论坛/Access中国论坛

标题: 非绑定窗体里主、子窗体的字段链接问题 [打印本页]

作者: 紫风    时间: 2011-7-15 13:53
标题: 非绑定窗体里主、子窗体的字段链接问题
1,主窗体里的字段A,是cmdSave单击后的自动编号填入字段。
2,子窗体里(数据表)某个字段F
我想在主窗体的字段A被填入后,子窗体的字段F=主窗体的字段A,请问这个代码要怎么写呢?
备注:做的是未绑定窗体,想用ADO写,可以么?
先谢谢各位了!

作者: todaynew    时间: 2011-7-15 15:19
紫风 发表于 2011-7-15 13:53
1,主窗体里的字段A,是cmdSave单击后的自动编号填入字段。
2,子窗体里(数据表)某个字段F
我想在主窗体 ...

筛选即可
作者: chaosheng    时间: 2011-7-15 21:46
主子窗体还是用绑定的好,主子表设置关系,主子窗体设置关联字段,  你的那些问题全不用考虑,由access为你完美处理.
作者: 紫风    时间: 2011-7-16 11:01
chaosheng 发表于 2011-7-15 21:46
主子窗体还是用绑定的好,主子表设置关系,主子窗体设置关联字段,  你的那些问题全不用考虑,由access为你完美 ...

回3楼:
可是因为某些原因,要用非绑定窗体啊……因为绑定窗体用鼠标滚滚就会到别的记录了……
我想用ADO做的。
作者: 紫风    时间: 2011-7-16 11:10
todaynew 发表于 2011-7-15 15:19
筛选即可

回版主:
筛选怎么做呢?
我再说具体一点:
主窗体字段A,在cmdSave单击事件如下:
    If IsNull(Me.A) Then
        Call AutoShid
        rs.Open "tblAAA", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
            With rs
                .AddNew
                ![号码] = Me.A
                .Update
            End With
        rs.Close
        Set rs = Nothing
        
        DoCmd.SetWarnings False
        DoCmd.RunSQL "insert into tblBBB SELECT tblBBBtemp.* FROM tblBBBtemp;"
        DoCmd.SetWarnings True
    End If
------------------------------------------------------------------------------------------------------------------------------
Private Sub AutoShid()
    Dim ID, date2 As String
   
    date2 = "SKZD" & Format(Me.日期, "YYYYMMDD")
    ID = DMax("[A]", "[tblAAA]", "[A] like '" & date2 & "???'")
    If IsNull(ID) Then
        Me.A = date2 & "001"
    Else
        Me.A = date2 & Format(CStr(Right(ID, 3) + 1), "000")
    End If
End Sub
------------------------------------------------------------------------------------------------------------------------------
如上,在主窗体字段A有值后,子窗体(有若干条记录的数据表,但第一个字段"B"是空的)里每行字段B都变成和主窗体字段A相同的值

请问这个是要怎么实现呢?


作者: 紫风    时间: 2011-7-18 14:04
时隔几天,我自己想到了个办法,就是不知是否可行,往各位告知,谢谢!
方法如下:
1. 主窗体-用未绑定窗体做
2. 子窗体-在客户端建个本地的表, tbl***.temp,用绑定窗体做
3. 主子链接字段A
4. cmdSave用ADO写,不过在后面加上以下:
    Docmd.SetWarnings False
    Docmd.RunSql " Insert into tbl*** Select tbl***.temp"
    Docmd.SetWarnings True
5. 最后在主窗体的关闭事件写下:
    Docmd.SetWarnings False
    Docmd.RunSql "Delete * From tbl***.temp"
    Docmd.SetWarnings True

以上是我想到的方法,其实就是将本里临时表的记录加到后台数据的表里。
如各位大人有更好的方法,请告知小弟,谢谢!






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