| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖
标题:这是什么函数?
只看楼主 加入收藏
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
结帖率:88.24%
收藏
已结贴  问题点数:20 回复次数:6 
这是什么函数?
看过这样一个例子:
在标准模块中有如下代码:
声明部分:
Public temp, str, BS As String
Public adoCon As New ADODB.Connection
Public adoRs As New ADODB.Recordset
——————————————————————
Public Sub Main()
    adoCon.Open "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=tsgl"
End Sub
——————————————————————————
Function cnn() As ADODB.Connection
    Set cnn = New ADODB.Connection
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db_library.mdb;Persist Security Info=False"
End Function


在一个登录窗体中的load事件代码:
Private Sub Form_Load()
    Adodc1.ConnectionString = cnn.ConnectionString
    Dim rec
    Dim i As Integer
    rs.Open "select * from usertb", cnn, adOpenKeyset, adLockOptimistic
    rec = rs.RecordCount
    ReDim Asc(rec - 1)
    rs.MoveFirst
    For i = 1 To rec
        Combo.AddItem rs.Fields("名称")
        Asc(i - 1) = Val(rs.Fields("密码"))
        rs.MoveNext
        If rs.EOF Then Exit For
    Next
    rs.Close
End Sub

请教:
在标准模块中的那个是自定义函数吗?是个什么类型的?
在Private Sub Form_Load()中的第一行是调用这个函数吗?为什么是这种形式的调用?
也看得出是做数据连接,可就是不太理解。
先谢谢大家。
搜索更多相关主题的帖子: 函数 
2010-01-24 08:50
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30047
注 册:2008-10-15
收藏
得分:10 
Function cnn() As ADODB.Connection

公用函数. 返回值的类型是一个类.
因为是一个函数,所以可以写在表达式的右边.

所以这样使用是合法的
Adodc1.ConnectionString = cnn.ConnectionString

但不建议这样用.
因为每次引用cnn时会产生一个新的数据库连接,造成新的开销.

建议这样使用:
dim cnn1 as adodb.connection

set cnn1=cnn()
然后使用cnn1 这个变量.


授人于鱼,不如授人于渔
早已停用QQ了
2010-01-24 16:56
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
谢谢版主的解释。

就是不好理解Adodc1.ConnectionString = cnn.ConnectionString
按你说的这样子也能通过
Private Sub Form_Load()
   ' Adodc1.ConnectionString = cnn.ConnectionString
    Dim cnn1 As adodb.Connection
    Set cnn1 = cnn()
    Adodc1.ConnectionString = cnn1
   ...................
  .................

认真看书学习,弄通Fox主义。
2010-01-24 17:23
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30047
注 册:2008-10-15
收藏
得分:10 
    Dim cnn1 As adodb.Connection
    Set cnn1 = cnn()
    Adodc1.ConnectionString = cnn1.ConnectionString


授人于鱼,不如授人于渔
早已停用QQ了
2010-01-24 19:06
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
那我的咋不出错呢?

认真看书学习,弄通Fox主义。
2010-01-24 20:50
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30047
注 册:2008-10-15
收藏
得分:0 
类有默认属性.所以不出错.

如 textbox 的默认属性是 text

所以,

  i= text1
 
  i=text1.text

是相同的,均不出错,但建议使用后一种写法,可读性的更好.

授人于鱼,不如授人于渔
早已停用QQ了
2010-01-25 09:01
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
谢谢版主!需慢慢消化呀!

认真看书学习,弄通Fox主义。
2010-01-27 20:45
快速回复:这是什么函数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014066 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved