课本88页,7.12 在讲逻辑错误的时候举了个例子,如下:
Dim n As Integer
Dim s As Integer
n = 1
For n = 1 To 3
s = s + n
Next n
书中说运行该程序将出现假死状态,因为n将永远等于1,该语句在循环语句中缺少一个增加步长的赋值语句n = n+ 1。
for循环在省略步长的时候变量不是自增1的吗?这个例子没有错误,可以正常运行。请看一下是不是书中的印刷错误。作者: skyrising 时间: 2010-3-6 18:52
----- Original Message -----
From: renfulin0623
To: sxyufeng
Sent: Monday, December 14, 2009 11:06 PM
Subject: 三个问题
你好,我是《VB从入门到精通》的读者,首先感谢您前两次回答的问题。不过最近我又有了三个问题需要您来帮助解决,问题如下:
第一个问题:
这是我根据《VB从入门到精通》中第301页中的例子写的:
Private Sub Command1_Click()
Dim cn As New ADODB.Connection
Dim temp, i As String
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\student.mdb;Persist Security Info =False"
i = MsgBox("确实要备份数据库吗?", vbYesNo + vbquetion, "提示")
If i = vbYes Then
temp = Dir(App.Path & "\ Data.xls")
If temp = "" Then
cn.Execute "select 学号,姓名,年龄,性别,系部 into [Excel 8.0;DataBase=" & App.Path & "\ Data.xls].sheet1 from t_user"
MsgBox "备份成功,生成Excel文件在当前目录下"
Else
MsgBox "当前路径下已存在原数据文件", vbCritical, "警告"
End If
End If
cn.Close
End Sub
这个程序可以运行通过。但用红字标出的地方书中是这么写的:str=Dir(" & App.Path & "\data.xls),我最开始按照书上写的,程序报错,我查了一下MSDN中关于Dir()的用法,就改成上面的了,程序就可以运行了。而且在第303页的例子中好像也犯了同样的错误,书上是这样写的:str=Dir(" & App.Path & "),
我在这里跟您说一下,您看看是不是书上写错了?
第二个问题:
在最后一章《图书管理系统》中,一直没讲怎样连接的数据库,只是在Module1标准模块中定义了一些公用的变量,如:Public conn As New ADODB.Connection,用conn连接数据库的语句应该写在哪?通用模块和标准模块不都只能定义一些公用的变量或过程吗?是把用conn连接数据库的语句写在每一个需要连接数据库的过程中吗?还是通过ado控件来连接?
第三个问题:
Dim rs As New ADODB.Recordset和Dim rs1 As ADODB.Recordset的区别,前者是recordset记录集对象的实例,可用于打开记录集,例如:rs.open sql,cn,1,1.后者是recordset记录集类型的变量,可用于存储记录集,例如:set rs1=conn.execute(sql),我想问的是它们两个能不能混用,具体有什么区别或是关系?