Office中国论坛/Access中国论坛

标题: [求助]这句代码为什么不执行呢!高手请帮忙! [打印本页]

作者: jacken    时间: 2006-5-17 14:54
标题: [求助]这句代码为什么不执行呢!高手请帮忙!
[attach]17821[/attach]


如果有愿意看附件的也可以,这是一个交叉查询的应用示例!在这里面下面的这句代码不执行:

If Not IsNull(Me.Text64) And Not IsNull(Me.Text66) Then
        Dim X As String
        X = "D" & Me.Text66.Column(1)
        MsgBox X
        Me.Text68 = X & "([分析结果]!" & Me.Text64 & ", [分析结果],((" & Me.Text64 & ") Is Not Null)"
    End If

执行结果为一个文本,不执行其运算(就是ME.TEXT68)这个文本框更新后的执行结果!Me.Text66.Column(1)的值为“sum”、“count”、“avg”等,在VBA中应用就要在前面加一个D。请大侠帮忙,谢谢了!

作者: jacken    时间: 2006-5-17 15:41
沉下来了,顶上去。
作者: jacken    时间: 2006-5-18 00:30
怎么没有人帮忙解决问题呀。
作者: LucasLynn    时间: 2006-5-18 00:38
以下是引用jacken在2006-5-17 6:54:00的发言:


[attach]17821[/attach]


如果有愿意看附件的也可以,这是一个交叉查询的应用示例!在这里面下面的这句代码不执行:

If Not IsNull(Me.Text64) And Not IsNull(Me.Text66) Then
        Dim X As String
        X = "D" & Me.Text66.Column(1)
        MsgBox X
        Me.Text68 = X & "([分析结果]!" & Me.Text64 & ", [分析结果],((" & Me.Text64 & ") Is Not Null)"
    End If

执行结果为一个文本,不执行其运算(就是ME.TEXT68)这个文本框更新后的执行结果!Me.Text66.Column(1)的值为“sum”、“count”、“avg”等,在VBA中应用就要在前面加一个D。请大侠帮忙,谢谢了!






怎样的提问才能得到最快的帮助,请楼主仔细阅读置顶的帖子。






[此贴子已经被作者于2006-5-17 16:38:27编辑过]


作者: hi-wzj    时间: 2006-5-18 00:47
为什么不直接用透视表呢?
作者: jacken    时间: 2006-5-18 00:54
透视表能够达到这个效果?我觉得透视表不能哦。
作者: LucasLynn    时间: 2006-5-18 00:57
以下是引用jacken在2006-5-17 16:54:00的发言:
透视表能够达到这个效果?我觉得透视表不能哦。





简单说一句“下面的代码不行哦”,别人很难帮助你。

建议你:
1、详细描述错误的状况,包括系统提示的出错信息,出错代码行。
2、最好描述一下引发错误的方法(我看过你的附件,打开窗体没有任何错误,我就马上关闭了)






作者: jacken    时间: 2006-5-18 01:05
[attach]17841[/attach]

如果大家按照我这样选的话,本来红色的框里应该显示结果的,可这里却只显示一个应该执行的语言。请一定帮忙

作者: LucasLynn    时间: 2006-5-18 01:12
以下是引用jacken在2006-5-17 17:05:00的发言:




如果大家按照我这样选的话,本来红色的框里应该显示结果的,可这里却只显示一个应该执行的语言。请一定帮忙





你对代码和字符串的概念相当模糊。


Dim A,B

B=A+1
Debug.Print B
B="A+1"
Debug.Print B


运行一下以上代码,你会知道你的错误在哪里。








作者: jacken    时间: 2006-5-18 01:15
以下是引用LucasLynn在2006-5-17 17:12:00的发言:





你对代码和字符串的概念相当模糊。


Dim A,B

B=A+1
Debug.Print B
B="A+1"
Debug.Print B


运行一下以上代码,你会知道你的错误在哪里
老大,不是模糊,是我根本就没有学过编程。我学的专业是野生动植物保护,我只是半途出来学的。所以有很多问题通过论坛或书来解决的。所以请你帮忙呗
作者: LucasLynn    时间: 2006-5-18 01:20
以下是引用jacken在2006-5-17 17:15:00的发言:
老大,不是模糊,是我根本就没有学过编程。我学的专业是野生动植物保护,我只是半途出来学的。所以有很多问题通过论坛或书来解决的。所以请你帮忙呗





我已经在代码中给你提示了。你运行下,思考下结果吧。

专业并不重要,除非你不打算用Access,否则从今天开始,就把自己当成一个程序员吧。野生动植物保护专业的,一样能学会编程,你也可以。

PS:我是材料工程系毕业的。









[此贴子已经被作者于2006-5-17 17:21:21编辑过]


作者: jacken    时间: 2006-5-18 01:23
看出错误来了,晕,把引号搞错了。对不起。犯了低级错误。检讨。

P.S.:我们整天爬山保护动物,想当程序员难哦。只是工作需要做一些简单的运用罢了。
作者: LucasLynn    时间: 2006-5-18 01:27
以下是引用jacken在2006-5-17 17:23:00的发言:


看出错误来了,晕,把引号搞错了。对不起。犯了低级错误。检讨。

P.S.:我们整天爬山保护动物,想当程序员难哦。只是工作需要做一些简单的运用罢了。





错误要靠自己找出来,映象才深刻,相信你下次不会犯同样的错误了。

[em07]




作者: jacken    时间: 2006-5-18 04:18
错误倒是找出来了,但还是不能解决,老提示类型不匹配,错误13的提示
作者: jacken    时间: 2006-5-18 04:53
标题: 别骂我,帮我解决好吗?
Me.Text68 = Me.Text66.Column(2)("""[分析结果]![" & Me.Text64 & "]""", """[分析结果]""")

执行结果是“运行时错误:13,类型不匹配”,估计是在数据源的时候出错了。请大侠帮忙纠正并通过此来学习!后面如果加上一个IS NOT NULL的条件如何加呀?[attach]17845[/attach]

作者: wuaza    时间: 2006-5-18 05:04
天哪,怎么能这么运算?

建议你从基础学起。
作者: jacken    时间: 2006-5-18 05:08
以下是引用wuaza在2006-5-17 21:04:00的发言:


天哪,怎么能这么运算?

建议你从基础学起。

老大,帮个忙指点一下嘛。我十万火急呀。
作者: wuaza    时间: 2006-5-18 05:20
你的函数名不能再用变量传递了,实在要传递的话只能再自定义一个函数。

当下只能直接写上dsum了。

Me.Text68 = dsum("'" & Me.Text64 & "'", "分析结果")
作者: jacken    时间: 2006-5-18 05:25
以下是引用wuaza在2006-5-17 21:20:00的发言:


你的函数名不能再用变量传递了,实在要传递的话只能再自定义一个函数。

当下只能直接写上dsum了。

Me.Text68 = dsum("'" & Me.Text64 & "'", "分析结果")

老大,要是用户要求dcount或davg喃或者其他的还没有加入列表的喃。这样就没有办法了。
作者: wuaza    时间: 2006-5-18 05:33
用select case 罗列用户的选择,然后分别写上对应的函数。我想只能用这个笨办法了。


作者: jacken    时间: 2006-5-18 05:37
把所有的都列出来,那不是还要做一个选项按钮或者列出所有的可能!这样好麻烦哦!这里我看选择数据源也没有什么问题呀。




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