VBA连接SQL的问题

程序如下:在'MsgBox(rs.GetString)’处是显示正确的,但是总起来运行的时候显示“无法设置List属性,属性阵列索引无效”PrivateSubUserFo... 程序如下:在 'MsgBox (rs.GetString)’处是显示正确的,但是总起来运行的时候显示“无法设置List属性,属性阵列索引无效”

Private Sub UserForm_Initialize()
'连接数据库
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim SQL As String, cnnStr As String, mytable As String
'mytable = "Code"
'建立与SQL Server数据库服务器的连接
cnnStr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=false;Initial Catalog=future;Data Source=SAM-YU;User ID=SAM YU;Password=yuyr"
cnn.ConnectionString = cnnStr
cnn.Open

SQL = "select Name from Future_Code"
Set rs = cnn.Execute(SQL)
'MsgBox (rs.GetString)

VarietyFirs.List = rs
rs.Close
cnn.Close
Set rs = Nothing
End Sub
展开
 我来答
zx001z7d53
2011-11-20 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:6047万
展开全部
不知道 VarietyFirs是个啥对象,能否直接这么用,你试试
Set VarietyFirs.List = rs
追问
上面的不行,VarietyFirs是ComboBox(复合框)
追答
do while rs.eof=false
VarietyFirs.additem rs.fields(0).value
rs.movenext
loop
用上面代码代替那句
cnbubble
2011-11-20 · TA获得超过2611个赞
知道大有可为答主
回答量:1990
采纳率:83%
帮助的人:816万
展开全部
VBA中在 用户窗体中的 ComboBox可以设置 RowSource属性
比如:ComboBox1.RowSource=Sheet1.Range("A1:A3").Address
所以可以试试
试试VarietyFirs.RowSource = rs

但是如果 是直接在 Excel的插入的 这个控件就没有这个属性。【看你的代码是有用户窗体的~】
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式