カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

複数のテーブルを一括で削除

Microsoft Accessにて、名前を指定して1つのテーブルを削除するだけであれば
DeleteObjectで削除することができます。

しかし、例えば任意の文字列が名前に含まれるテーブルを削除することができません。
その場合は以下のような方法で削除します。

例としてインポートでエラーが発生した際に作成されたエラーのテーブルを全て削除してみます。

Dim tbls As Object 'DAO.TableDefs
Dim tbl  As Object 'DAO.TableDef

'テーブル一覧取得
Set tbls = CurrentDb.TableDefs

Dim DelTables As Collection

Set DelTables = New Collection

For Each tbl In tbls

    If tbl.NAME Like "*インポート*エラー" Then
        DelTables.Add tbl.NAME
    End If

Next

For i = 1 To DelTables.Count
    'テーブル削除
    tbls.Delete (DelTables(i))
Next
14,902 views

C# コンソールアプリケーションのコマンドプロンプトを表示させない

Visual Studio C#で作成したコンソールアプリケーションを実行すると、
通常はコマンドプロンプトの画面が表示されます。

簡単な動作を行ってすぐに終了するアプリケーションだったとしても、
一瞬だけ表示されてしまいます。

これを全く表示されないようにするには、プロジェクトのプロパティを開き、
[アプリケーション]-[アプリケーションの種類]をWindowsフォームアプリケーションに変更することで表示されなくなります。
example

11,702 views

Listのコピー

List<string> list1 = new List<string> (){"test"};

参照渡し
list1の内容が変わるとlist2の内容も変わる

List<string> list2 = list1;

値渡し
list1の内容が変わってもlist3の内容は変わらない

List<string> list3 = new List<string>(list1);
1,842 views

Dictionaryクラス VBA

Dictionaryクラスはハッシュテーブルのように使えるクラスです。
Collectionクラスも同じように使えるのですが、Dictionaryクラスはキーが存在するかどうかをチェックするメソッドがあることがポイントです。

Dim dict As Object

Set dict = CreateObject("Scripting.Dictionary")

キーが存在しないことを確かめてからデータを追加します。

If dict.Exists("いちご") <> True Then
    dict.Add "いちご", "いちご"
End If

ループして全ての値を取り出します。

For Each vntItem In dict.Items
    MsgBox vntItem
Next vntItem

続きを読む…»

3,481 views

複数の条件分岐 Select Case

複数の条件で処理を分岐させたい場合、Select Caseステートメントを使用します。
他の言語でのswitch文と似ていますので、そちらをご存じの方には親しみやすいと思います。

文法

Select Case 変数
    Case 値1
        変数が値1だった場合の処理
    Case 値2
        変数が値2だった場合の処理
    Case Else
        それ以外の場合の処理
End Select

「Case Else」がswitch文での「default」に当たります。
VisualBasicではbreakは不要です。

値の判定には数値はもちろん、文字列も使用可能です。
また比較条件を指定することもできます。

Select Case 変数
    Case Is 比較条件1
        変数が比較条件1を満たした場合の処理
    Case Is 比較条件2
        変数が比較条件2を満たした場合の処理
    Case Else
        変数がどの条件も満たさなかった場合の処理
End Select

続きを読む…»

3,663 views