帰りは気楽な歌で

Windows、VBScript等の小ネタ、その他個人の趣味(音楽等)を書いていきます。

スローアルパカ、ウィズやめるってよ

iphoneで「魔法使いと黒猫のウィズ」を半年ほどちまちまやっていたんですが、やめてしまいました。

 
ゲーム自体はよくあるカードガチャがあるソシャゲーですが、戦闘方法にクイズが組み込まれています。
 
クイズに答えていければ必ず先に進めるわけではなく、正答した時の様子攻撃方法が充実していないと(例えば体力が回復する、防御力が上がる、等)、高難度のクエストはクリアできません。
 
そのためにはレアカードが必要ですが、ここでユーザーにカードガシャを多く遣わせるように、クリスタルを購入させるわけです。(私は全然入れ込んでないので、お金は一銭も使ってないです)
 
終盤のステージは、どうやっても無課金プレーヤーにはしんどく、最近はイベントをちょっと触る程度。
 
クイズに答えても全くクリアできないこれはクイズゲームなのか、、、?と疑問をもちつつやめました。
 
ただ、これの情報処理試験版とかあると結構時間が活用できて良いよなぁとは思います。問題集差し替え的なコンテンツがあったらお金を払ってたかもしれないですが、需要がニッチすぎなんですかね。

VBScriptでAccess(mdb,accdb)内のテーブルにクエリを投げる

表題の通り、Accessの中でVBAでやればいいだろ!という内容ではありますが、

・accdbに直接触れない(お客さんが使っていて直接見られない)

・accdbのサイズが大きすぎてメールでやり取りできない

なんて時に、データパッチと称してVBScriptでクエリを実行できたらいいなあと思って作成しました。前の記事はDAOなのにこれはADOかいな。

Option Explicit

Dim objFS
Set objFs = WScript.CreateObject("Scripting.FileSystemObject")

Dim conn
Dim rs
Dim ra

Set conn = WScript.CreateObject("ADODB.Connection")
Set rs = WScript.CreateObject("ADODB.Recordset")

conn.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=C:\temp\hoge.accdb;"

Set rs = conn.Execute("UPDATE SAMPLETABLE SET FIELD1='TEST' WHERE FIELD2='LAST'", ra)

cn.Close

Set rs = Nothing
Set cn = Nothing

'処理終了
WScript.echo "処理が完了しました。"

VBScriptでmdb, accdbよりクエリのSQL文をファイル出力する(DAO)

Accessmdb、accdbはクエリやVBAソースなどが1ファイルにまとめられ、ある意味手軽です。

反面、クエリやソースがバイナリで保存されるため、いざ差分管理や調査を行う時にいちいちmdb・accdbを開かなければならない・・・めんどい!

そこで、クエリを出力すれば、ソース管理もしやすくなるかな?という事でVBScriptで組んでみました。

クエリの文字列抽出箇所のみに絞って書くと、こんな感じです。(Access 2010向け)

Option Explicit

Dim DAO      '
Dim Dbs      '   As DAO.Database
Dim Qdf      '   As DAO.QueryDef
Dim objOutText

'DAOの宣言(Access 2010をインストールされているPCだったので。バージョンに応じて書き換えてください)
Set DAO = WScript.CreateObject("DAO.DBEngine.120")

'データベースセット
Set Dbs = DAO.OpenDatabase("[AccessMDBファイルのフルパスを記載する。]")

'クエリ分ループ(リストボックスなどに使用されたクエリは除外している)
For Each Qdf In Dbs.QueryDefs

    If InStr(Qdf.Name, "~") = 0 Then

        '内容出力
        WScript.echo "***" & Qdf.Name & "***" & vbCrLf
        WScript.echo Qdf.SQL & vbCrLf
        WScript.echo "******" & vbCrLf

    End If

Next

Dbs.Close
Set Dbs = Nothing
Set DAO = Nothing

はじめまして

都内某所で働いているslowalpacaと申します。

一児のパパでもあります・・・でもニュービーです^^;

仕事柄、VBScriptVBA等に触れる機会が多く、その過程で疑問に思ったこと、簡単なネタなどを挙げていこうかと考えております。

あとは、趣味でやっているハーモニカ、ギターなど。こちらはあまり記載することはないかも知れない・・・。

とりあえず、よろしくお願いします。

本ブログに記載のソースコード・情報を利用した際に生じたいかなる損害において、筆者は責任を負いません。十分な知識を持ったうえでご利用ください。