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

CSVエクスポートでのテキストデータのNull値について ACCESS

AccessでCSVをエクスポートする際、テキスト型のフィールドがNullだった場合、
「,””,」とならず「,,」となってしまいます。
※前後にフィールドがあるとしています。

他のソフトやプログラムで該当ファイルを使用するときに、ダブルクォーテーション「”」が
必要な場合があります。

そういう時はNz関数を使います。
Nz関数はNullを別の文字列に置き換えしてれくる関数です。

データがNullだった場合、「,””,」という結果にするためには、Nullを長さゼロの文字列に置き換えます。

Nz([フィールド名],"")

もちろん、指定したフィールドのデータがNullでない場合はそのデータを返します。

14,366 views

Excel 罫線等の定数まとめ【Access】

AccessからExcelを操作し、罫線等を設定する場合、私自身もいつも定数の値が何だったかいちいち調べているので、備忘録も兼ねて書いておきます。

まずは全体の流れ

Dim ws

Dim xlApp      As Object
Dim xlBook     As Object
Dim xlSheet    As Object
Dim FileName   As String

Set ws = CreateObject("WScript.Shell")

FileName = ws.SpecialFolders("Desktop") & "\雛形.xlsx"

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(FileName)
Set xlSheet = xlBook.WorkSheets(1)

With xlSheet
    'このブロック内に書いていきます
End With

'保存
xlBook.Save

xlBook.Close

xlApp.Application.Quit

Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing

罫線を引く

.Range("A1:I1").Borders.LineStyle = 1
.Range("A1:I1").Borders(8).LineStyle = -4118
.Range("A1:I1").Borders(11).LineStyle = -4115
.Range("A1:I1").Borders(11).Weight = 1

続きを読む…»

17,801 views

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

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,588 views

Accessからはできないフリガナの割り付け

WindowsXPでは[Excelオブジェクトを使用してフリガナ入力]で紹介しているように、Accessだけで可能だったフリガナ変換が、Windows7では出来なくなっていました。
色々と方法を模索してはみたものの、解決策が見つかっていませんでした。

そして今日、なんとなく改めて挑戦してみると…なんと!(それほど大したことではありませんが;)方法が見つかりました!
といっても結局、Accessだけではできない、というのが結論です。
つまりExcelを使って実装することになります。

PHONETIC

まず、Excelの「PHONETIC」という関数。
これはセルに入力した文字のフリガナを取得することができます。

例としてこのようなExcelを用意してみます。
001
続きを読む…»

4,984 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,427 views