小型VBScript项目要求协助

时间:2018-11-25 15:13:01

标签: sql ms-access vbscript adodb

我从一个朋友那里获得了一个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

它显示一个消息框,该消息框作为我的目标出现,但没有数字。

我希望协助您弄清楚应使用哪些查询等来实现自己的目标。我不是在找别人替我重写代码。

1 个答案:

答案 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