设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: HG
打印 上一主题 下一主题

[求助]想用一個函數來返回兩個值怎麼辦?

[复制链接]
11#
发表于 2002-7-18 22:20:00 | 只看该作者
Type myfunction
x1 As Single
x2 As Single
x3 As Single
End Type



Function F(x) As myfunction

x1 = 2 * x
x2 = 4 * x
x3 = 8 * x
End Function
但如何调用呢
12#
 楼主| 发表于 2002-7-18 22:25:00 | 只看该作者
sunredday:我現在的想法是先放兩個公用變量在函數外,然後用函數來更新哪兩個公用變量,
接著再用其它的程式來讀哪兩個變量。如果按您 的想法,也要把type 結構放在函數外方可。
我的已通過。多謝您。
13#
发表于 2002-7-18 22:43:00 | 只看该作者
换个想法就行吧?要两个值就用两个Function呗。
用公共变量的方法是可行的,但不可靠,当程序发生异常的时候有可能变量的值被重置。
14#
 楼主| 发表于 2002-7-18 23:14:00 | 只看该作者
freemanager您真料事如神,我正是發現公用變量不可靠,所以把一個函分成了兩個函數搞定的。

点击这里给我发消息

15#
发表于 2002-7-19 00:46:00 | 只看该作者
以下是引用sunredday在2002-7-18 14:20:07的发言:
Type myfunction
x1 As Single
x2 As Single
x3 As Single
End Type


  
Function F(x) As myfunction
  
x1 = 2 * x
x2 = 4 * x
x3 = 8 * x
End Function
但如何调用呢


Private Sub Demo()
    Dim myTypeVar As myfunction
    myTypeVar = F(3.14159265)
End Sub

Public Function F(x) As myfunction
    With F
       .x1 = 2 * x
       .x2 = 4 * x
       .x3 = 8 * x
   End With
End Function

[em26]
[此贴子已经被zhuyiwen于2002-7-18 16:46:02编辑过]

16#
 楼主| 发表于 2002-7-19 01:16:00 | 只看该作者
哈哈,哈哈,哈哈,哈哈,原來調用自定義結構和在函數內對函數外公用變量賦值是一樣的呀。
可以用這樣的結構和函數外的公用變量一樣會有不可靠的情兗出現的,它們的道理同出一路。
今天真是有點迷糊了。多謝各位。我還是把一個函數折分成兩個函數搞的了。
17#
 楼主| 发表于 2002-7-19 17:26:00 | 只看该作者
sunredday:昨天突然想起您對此問題的想法,覺得收獲很大,請問你為什麼會想想這樣作,
可以告訴我為什麼嗎?多多謝。因當局時易迷。
18#
发表于 2002-7-19 21:16:00 | 只看该作者
不过,到目前为止,好象问题还没有解决。
这个问题好比数学的三维坐标
物理学的三维向量
实际上还是三个函数
说道底都是一回事
对于这种方法你实验成了吗?
如何从F(3.14159265)中分解出
X1
X2
X3



[此贴子已经被作者于2002-7-19 13:13:29编辑过]




[此贴子已经被作者于2002-7-19 13:15:48编辑过]

点击这里给我发消息

19#
发表于 2002-7-19 21:27:00 | 只看该作者
Private Sub Demo()
Dim myTypeVar As myfunction
dim x1, x2, x3
myTypeVar = F(3.14159265)
x1 = myTypeVar.x1
x2 = myTypeVar.x2
x3 = myTypeVar.x3
End Sub

点击这里给我发消息

20#
发表于 2002-7-19 21:38:00 | 只看该作者
完整的:

' 定义自定义数据类型
Type myfunction
x1 As Single
x2 As Single
x3 As Single
End Type

' 返回一个自定义类型的函数
Public Function F(x) As myfunction

' 打开变量,对自定义类型变量的各部份赋值
With F
.x1 = 2 * x
.x2 = 4 * x
.x3 = 8 * x
End With
End Function

Private Sub Demo()
' 定义一个自定义类型的变量 myTypeVar
Dim myTypeVar As myfunction
Dim x1, x2, x3

' 对自定义类型变量通过函数同赋值
myTypeVar = F(3.14159265)

' 取出自定义类型变量的分量
x1 = myTypeVar.x1
x2 = myTypeVar.x2
x3 = myTypeVar.x3
End Sub
[em26]


[此贴子已经被zhuyiwen于2002-7-19 13:37:53编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-10 01:30 , Processed in 0.086003 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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