VB运行出错。对象变量或with变量块未设置

[复制链接]
查看11 | 回复7 | 2011-3-19 06:18:45 | 显示全部楼层 |阅读模式
Dim conn1 As New ADODB.Connection \'对函数进行声明
Dim rs1 As New ADODB.Recordset
Dim txtSQL As String
Dim mrc As ADODB.Recordset
Dim MsgText As String
Dim n As String
Private Sub Commandchuan2_Click()



Dim i As Integer

txtSQL = \"select cname,caixi,price,taste,main,fuliao,peiliao from caidan\"

\'要查询的数据库中的对象

Set mrc = ExecuteSQL(txtSQL, MsgText) \'使之运用到数据库语言



With MSHFlexGrid1

.TextMatrix(0, 0) = \" \"

.TextMatrix(0, 1) = \"菜名\"
\'将菜名赋值到第一行第二列的位置

.TextMatrix(0, 2) = \"菜系 \"
\'将菜价赋值到第一行第三列的位置

.TextMatrix(0, 3) = \"价格\"
\'将价格赋值到第一行第四列的位置

.TextMatrix(0, 4) = \"口味\"
\'将口味赋值到第一行第五列的位置

.TextMatrix(0, 5) = \"主料\"
\'将主料赋值到第一行第六列的位置

.TextMatrix(0, 6) = \"辅料\"
\'将辅料赋值到第一行第七列的位置

.TextMatrix(0, 7) = \"配料\"
\'将配料赋值到第一行第八列的位置





End With

Do While Not mrc.EOF
\'循环语序对数据库进行循环查询(出错!!)

If mrc.Fields(\"main\") = Text2.Text Then \'对数据库中的名为main的列进行查询

With MSHFlexGrid1
\'将查询内容显示在表格控件中

i = i 1



.TextMatrix(i, 1) = mrc.Fields(0) \'将程序赋值到列表中第二列的位置

.TextMatrix(i, 2) = mrc.Fields(1) \'将程序赋值到列表中第三列的位置

.TextMatrix(i, 3) = mrc.Fields(2) \'将程序赋值到列表中第四列的位置

.TextMatrix(i, 4) = mrc.Fields(3) \'将程序赋值到列表中第五列的位置

.TextMatrix(i, 5) = mrc.Fields(4) \'将程序赋值到列表中第六列的位置

.TextMatrix(i, 6) = mrc.Fields(5) \'将程序赋值到列表中第七列的位置

.TextMatrix(i, 7) = mrc.Fields(6) \'将程序赋值到列表中第八列的位置



End With



End If

mrc.MoveNext



Loop



mrc.Close


End Sub
回复

使用道具 举报

千问 | 2011-3-19 06:18:45 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">你那个i=i 1应该放在WITH块的外面,放do wihle后面,

















<h4 class=\"ask\">追问





<pre class=\"replyask-text\" id=\"content-1219004\">还是不对。其实原来这段程序是可以运行的。但是我做了一个可以修改数据库的窗体之后。这段程序就出错了。
回复

使用道具 举报

千问 | 2011-3-19 06:18:45 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-1219005\">还是不对。其实原来这段程序是可以运行的。但是我做了一个可以修改数据库的窗体之后。这段程序就出错了。
回复

使用道具 举报

千问 | 2011-3-19 06:18:45 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-1219006\">还是不对。其实原来这段程序是可以运行的。但是我做了一个可以修改数据库的窗体之后。这段程序就出错了。
回复

使用道具 举报

千问 | 2011-3-19 06:18:45 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-1219007\">还是不对。其实原来这段程序是可以运行的。但是我做了一个可以修改数据库的窗体之后。这段程序就出错了。
回复

使用道具 举报

千问 | 2011-3-19 06:18:45 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-1225342\">刚刚专门把你的代码搞下来,发现是你的那个mrc的记录集出问题了,看看是不是你在修改数据库的窗体把这个改变了,还是怎么的,其它语法上没有问题
回复

使用道具 举报

千问 | 2011-3-19 06:18:45 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-1237107\">我修改数据库的窗体用的是DATAGRID控件。不是MSHFlexGrid控件。这个有关系么?
回复

使用道具 举报

千问 | 2011-3-19 06:18:45 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-1384480\">好像有关系,昨天有一个用MSFlexgrid控件就不行,好像不可以直接绑定
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行