我这个菜鸟实在是不会用 append 来增加数据列,还请各种高手相救了

yanghongsheng100 2005-11-23 07:24:54
我在用如下的代码动态的添加一个列:
Dim cnn1 As ADODB.Connection
Dim cmdByRoyalty As ADODB.Command
Dim prmByRoyalty As ADODB.Parameter
Dim rstByRoyalty As ADODB.Recordset
Dim rstAuthors As ADODB.Recordset
Dim intRoyalty As Integer
Dim strAuthorID As String
Dim strCnn As String
' 打开连接。
Set cnn1 = New ADODB.Connection
' strCnn = "Provider=sqloledb;" & "Data Source=srv;Initial Catalog=pubs;User Id= ;Password=; "
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\数据\dbbackup.mdb;User Id= ;Password=;Persist Security Info=False"
cnn1.Open strCnn
cnn1.CursorLocation = adUseClient
' 使用单一参数打开命令对象。
Set cmdByRoyalty = New ADODB.Command
cmdByRoyalty.CommandText = "study_info"
cmdByRoyalty.CommandType = adCmdStoredProc
' 获取参数值并追加参数。
' intRoyalty = Trim(InputBox("Enter royalty:"))
Set prmByRoyalty = cmdByRoyalty.CreateParameter("percentage", _
adInteger, adParamInput)
cmdByRoyalty.Parameters.Append prmByRoyalty
prmByRoyalty.Value = intRoyalty
' 通过执行命令创建记录集。
Set cmdByRoyalty.ActiveConnection = cnn1
Set rstByRoyalty = cmdByRoyalty.Execute
' 打开 Authors 表以获取作者姓名进行显示。
Set rstAuthors = New ADODB.Recordset
rstAuthors.Open "authors", cnn1, , , adCmdTable
rstByRoyalty.Close
rstAuthors.Close
cnn1.Close
可是它总是会有这样的一个提示:对象“study_info"不是一个被存储的过程,我想这可能是不是我的那一个属性没有设置正解,还请各位大哥帮帮小弟。(还请不要见笑我这个入道不久的菜鸟吧)
还想顺便问一下各位大哥:在一个字符串中找某个字符的函数是什么呀!谢谢了,小弟先谢谢各位了
...全文
138 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
faysky2 2005-11-24
  • 打赏
  • 举报
回复
这样试试:
cnn1.Execute("ALTER TABLE study_info ADD COLUMN 是否爱打蓝球 VARCHAR(10)")
yanghongsheng100 2005-11-24
  • 打赏
  • 举报
回复
您看是这样的,我在表“study_info”中作了一些基本的信息项如“个人编号”,“姓名”,“性别”,“年龄”,等。我想作一个可以跟据个人的想法自由的在表“study_info”把自己的个人爱好也添加进去,但是如果我将所有可能的爱好全部都预先加好这个表会很大,而且不同的人的爱好也不一样吗?所以我才想到了动态的添加的方法。(如我可以添加一个“是否爱打蓝球”这样在下面添加用户的时候,喜欢的就可以添“是”不喜欢的不添加任何的数)
还请大哥你帮帮忙了
faysky2 2005-11-24
  • 打赏
  • 举报
回复
在没有报错的情况下执行完后,并没有给这张表格添加任何信息,更何况我是要添加一列那
---------------------------------------------------
能不能把你的要求说具体一点,你想添加什么信息,添加一列又是指什么
yanghongsheng100 2005-11-24
  • 打赏
  • 举报
回复
首先我应该谢谢以人大哥,“study_info”确实是表,但是我就是不明白为什么在我按照上面的代码在没有报错的情况下执行完后,并没有给这张表格添加任何信息,更何况我是要添加一列那,还请各位大哥在帮小弟,在线等待。。。。。
yanghongsheng100 2005-11-24
  • 打赏
  • 举报
回复
谢谢您了大哥,您可真是个好人
faysky2 2005-11-23
  • 打赏
  • 举报
回复
可以使用Replace函数来实现将字符串中的字符(/串)代替为其他字符(/串):
strRet = "abcdefgbc"
strRet = Replace(strRet, "bc", "") '将字符串中的"bc"去掉
结果: strRet = "adefg"
strRet = Replace(strRet, "bc", "BC") '将字符串中的"bc"替换为"BC"
结果: strRet = "aBCdefgBC"
faysky2 2005-11-23
  • 打赏
  • 举报
回复
还想顺便问一下各位大哥:在一个字符串中找某个字符的函数是什么呀!谢谢了,小弟先谢谢各位了
-------------------------------------------------
可以使用InStr函数判断某个子串是否存在与某字符串中:
If InStr("bcd","abcdefg")<>0 then
Msgbox "子串存在"
Else
Msgbox "子串不存在"
End if
faysky2 2005-11-23
  • 打赏
  • 举报
回复
cmdByRoyalty.CommandText = "study_info"
cmdByRoyalty.CommandType = adCmdStoredProc
---------------------------------------
从LZ代码中的这两句看,是准备调用存储过程了?
如果"study_info"是表,应该这样: cmdByRoyalty.CommandType = adCmdTable

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧