设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2428|回复: 16
打印 上一主题 下一主题

[其它] 大家来看看我这段代码,我都快疯了。

[复制链接]
跳转到指定楼层
1#
发表于 2006-4-9 23:17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
出错提示:除非获得焦点,否则你不能引用该控件的属性和方法。

Private Sub Form_Open(Cancel As Integer)
jinping = ""
xiadan = ""
renwu = ""
Form!精品任务单_子表.LinkChildFields = ""
Form!精品任务单_子表.LinkMasterFields = ""
DoCmd.GoToRecord , , acNewRec
End Sub

‘上面是设置变量,设置连接字段(我想通过链接字段在输入过程中自动筛选),当打开表单的时候,转到添加新记录上面(也就是指针转到最后面去)。

Private Sub 精品任务编号_Enter()
Me.精品任务编号.BackColor = RGB(200, 200, 200)
If (Me.精品任务编号.Text = "") Then
jinping = ""
Else
End If
End Sub
Private Sub 精品任务编号_Exit(Cancel As Integer)
Me.精品任务编号.BackColor = RGB(255, 255, 255)
If (Me.精品任务编号.Text = "") Then
jinping = ""
Else
jinping = "精品任务编号"
End If
Form!精品任务单_子表.LinkMasterFields = jinping & xiadan & renwu
Form!精品任务单_子表.LinkChildFields = jinping & xiadan & renwu
End Sub
Private Sub 下单日期_Enter()
Me.下单日期.BackColor = RGB(200, 200, 200)
If (Me.下单日期.Text = "") Then
xiadan = ""
Else
End If
End Sub

Private Sub 下单日期_Exit(Cancel As Integer)
Me.下单日期.BackColor = RGB(255, 255, 255)
If (Me.下单日期.Text = "") Then
xiadan = ""
ElseIf (Me.精品任务编号.Text = "") Then
xiadan = "下单日期"
Else
xiadan = ";下单日期"
End If
Form!精品任务单_子表.LinkMasterFields = jinping & xiadan & renwu
Form!精品任务单_子表.LinkChildFields = jinping & xiadan & renwu
End Sub
Private Sub 任务日期_Enter()
Me.任务日期.BackColor = RGB(200, 200, 200)
If (Me.任务日期.Text = "") Then
renwu = ""
Else
End If
End Sub
Private Sub 任务日期_Exit(Cancel As Integer)
Me.任务日期.BackColor = RGB(255, 255, 255)
If (Me.任务日期.Text = "") Then
renwu = ""
ElseIf (Me.精品任务编号.Text = "" And Me.下单日期.Text = "") Then
renwu = "任务日期"
Else
renwu = ";任务日期"
End If
Form!精品任务单_子表.LinkMasterFields = jinping & xiadan & renwu
Form!精品任务单_子表.LinkChildFields = jinping & xiadan & renwu
End Sub

[此贴子已经被作者于2006-4-9 15:25:17编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2006-4-9 23:40:00 | 只看该作者
是不是ACCESS不支持elseif

我在没有用elseif之前有点错,但是不是这么错的离谱。

没有用elseif之前我发现错误是由多个字段之间的间隔符号引起,于是我就想到了VB上面有ELSEIF,用了之后就错的一发不可收拾。



[此贴子已经被作者于2006-4-9 15:46:00编辑过]

3#
 楼主| 发表于 2006-4-9 23:53:00 | 只看该作者
今天没有人值班啦?以前我问一个问题马上就看到高手回答了。
4#
发表于 2006-4-10 00:05:00 | 只看该作者
出错提示:除非获得焦点,否则你不能引用该控件的属性和方法.

Private Sub 精品任务编号_Exit(Cancel As Integer)
If (Me.精品任务编号.Text = "") Then
这里,精品任务编号_Exit,该控件已经失去焦点,不能用 .Text ,只能 Me.精品任务编号="",其它语句检查一下,可能有类似的.
5#
发表于 2006-4-10 00:35:00 | 只看该作者
请将问题示例放上来,结合例子好分析。
6#
 楼主| 发表于 2006-4-10 00:57:00 | 只看该作者
只需要看窗体,我想在窗体上面实现:在子表中点击,主表上面的当前对象自动对应子表。因为没有能力实现这个功能就只好折中一下。通过在主表中输入数据,判断是否有数据,有数据就进行筛选。在筛选的时候出错了。

本帖子中包含更多资源

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

x
7#
 楼主| 发表于 2006-4-10 00:59:00 | 只看该作者
啊,蜘蛛侠,真谢谢你。我马上就去查看原因。弄了一天了,都没有找到原因。
8#
 楼主| 发表于 2006-4-10 01:32:00 | 只看该作者
好象变量没有传递到三个设置的参数中去?错误还是没有解决完。刚刚哪个问题解决了。怎么设置公共变量,要能回传的。可以把全部的Private改成Public吗?

[此贴子已经被作者于2006-4-9 17:39:02编辑过]

9#
发表于 2006-4-10 03:11:00 | 只看该作者
没有看明白你的代码要实现什么.

LinkChildFieldsLinkMasterFields 属性:当为这两个属性的设置指定多个字段或控件的名称时,则必须为每一属性设置输入相同数目的字段或控件名称,并在名称之间使用分号 (;) 进行[url=mkMSITStore:C:\Program%20Files\Microsoft%20Office\OFFICE11\2052\vbaac10.chm::/html/acproLinkMasterFields.htm#]分隔[/url]

如果要在主窗体设置条件在子窗体中筛选,可在SQL语句的Where子句中设置条件,然后为子窗体的RecordSource 属性赋值

例如:Sub cmboCompanyName_AfterUpdate()
    Dim strNewRecord As String
    strNewRecord = "SELECT * FROM Customers " _
        & " WHERE CustomerID = '" _
        & Me!cmboCompanyName.Value & "'"
    Me.RecordSource = strNewRecord
End Sub
10#
 楼主| 发表于 2006-4-10 03:28:00 | 只看该作者
其实我的“主窗体”和“子窗体”都是来自同一个“表单”,主要是为了输入方便。

在“主窗体”中有三个输入框,包含“表单”中重复输入的字段,“子窗体”包含所有的“表单”内容。

主窗体中输入一条记录(实际上只有三个字段,并不算完整的记录),所以想实现主窗体和子窗体的记录在“表单”的同一个当前记录上。

LinkChildFieldsLinkMasterFields 属性不知道能不能关联成功(锁定到同一当前记录上,可能还需要一些程序控制)。



看来这个方法是行不通了!再换一种方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 13:50 , Processed in 0.108355 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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