主题Visual Basic语句手段

时间:2013-06-08 12:53:17

标签: vba

请解释这些陈述对代码的意义 我是VB的新手,我将不胜感激。感谢。

'Statement

While Not MyRec.EOF  ' Loop trough the table
    MyList = MyList & ";" & MyRec![email]
    MyRec.MoveNext
Wend

MyList = Mid(MyList, 2)



'Below CODE

function GetMailList()
    Dim MyDB As DAO.Database, MyRec As DAO.Recordset, MyList As String
    Set MyDB = CurrentDb
    Set MyRec = MyDB.OpenRecordset("Select email From TableName")

    While Not MyRec.EOF  ' Loop trough the table
        MyList = MyList & ";" & MyRec![email]
        MyRec.MoveNext
    Wend

    MyList = Mid(MyList, 2)

    ' use you code here with the mail list ceated

    MyRec.Close
    MyDB.Close
End Function

由于

2 个答案:

答案 0 :(得分:1)

<强> 1。创建与数据库的连接并获取数据

Dim MyDB As DAO.Database, MyRec As DAO.Recordset, MyList As String
Set MyDB = CurrentDb
Set MyRec = MyDB.OpenRecordset("Select email From TableName")

<强> 2。虽然myRec中有未读记录,但循环记录。这里EOF表示End-Of-File

While Not MyRec.EOF  ' Loop trough the table

    MyList = MyList & ";" & MyRec![email]
    'this will append the eMail field to the string

    MyRec.MoveNext
Wend

第3。既然所有的电子邮件都已经连接到字符串(我们有一个分号的电子邮件的分号),关闭连接和所有

MyRec.Close
MyDB.Close

答案 1 :(得分:0)

这会将TableName表中email列的所有值连接成一个由分号分隔的长字符串。

所以在循环结束时你会有:

;address1@something.com;address2@something.com;address3@something.com

请注意,由于连接的编写方式,分号位于前面而不是后面。最后一行通过从第二个字符开始替换字符串来消除第一个分号。