我从一个朋友那里获得了一个accdb文件,该文件包含她为台式RPG制作的咒语的信息(基于D&D的想法)。该表上的一列称为“类型”,其中包含多个条目,例如“暗”,“毒”,“治疗”等。
我对该项目的目标如下:
在这样的消息框中显示数据:
Dark = n Poison = n Healing = n
n =
是在“类型”列中重复输入该类型的次数。
这是我到目前为止的代码:
Dim connStr, objConn, getTypes
connStr = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = Rachelle_TableTop_RPG_Spells_0.1.1.accdb"
Set objConn = CreateObject("ADODB.Connection")
objConn.Open connStr
Set rs = objConn.Execute("SELECT Distinct(Type) FROM Spells")
Do While Not rs.EOF
getTypes = getTypes + rs.Fields(0) & " = " & vbCrLf
rs.MoveNext
Loop
objConn.Close
Set rs = Nothing
Set objConn = Nothing
MsgBox getTypes
它显示一个消息框,该消息框作为我的目标出现,但没有数字。
我希望协助您弄清楚应使用哪些查询等来实现自己的目标。我不是在找别人替我重写代码。
答案 0 :(得分:0)
如果脚本与数据库不在同一文件夹中,则连接字符串需要数据库的完整文件路径。为了使工作联系起来,我必须遵循以下建议:https://rtmccormick.com/2014/06/05/provider-cannot-be-found-it-may-not-be-properly-installed/
我创建了一个快捷方式,并将目标设置为:
%windir%\SysWoW64\wscript.exe C:\filepath\filename.vbs
在其他地方阅读:
“编辑cmd文件以运行32位进程
windir%\ SysWoW64 \ cmd.exe / c C:\ filepath \ filename.vbs
而不只是
C:\ filepath \ filename.vbs“
没有跟进。
更改记录集的查询:
SELECT [Type], COUNT([Type]) AS CountType FROM Spells GROUP BY [Type]
类型在Access中具有特殊含义。使用保留字作为名称可能会引起问题。将字段名括在[]中或不要将保留字用作任何名称。
在循环内串联以生成字符串:
getTypes = getTypes & rs.Fields(0) & " is repeated " & rs.Fields(1) & " times" & vbCrLf