我从一个朋友那里得到了一个accdb文件,里面有她为桌面RPG制作的咒语的信息(关于D&D的想法(。这个表上的一列被称为"类型",其中有多个条目,如黑暗、毒药、治疗等。
我对这个项目的目标如下:
- 获取"类型"列中的唯一条目
- 在"类型"列中计算每个类型重复的次数
-
在消息框中显示数据,如下所示:
深色=n毒药=n治疗=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
它显示了一个消息框,上面显示的是我的目标,但没有数字。
我希望得到帮助,弄清楚我应该使用什么查询等来达到我的目标。我不想找人为我重写代码。
如果脚本和数据库不在同一文件夹中,则连接字符串需要数据库的完整文件路径。为了获得与工作的联系,我必须遵循以下建议:https://rtmccormick.com/2014/06/05/provider-cannot-be-found-it-may-not-be-properly-installed/
我创建了一个快捷方式,并使用:%windir%SysWoW64wscript.exe C:filepathfilename.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