「ACCESS」カテゴリーアーカイブ

[SQL]Accessで更新時に特定のデータだけ「データの競合」が発生する

現象

access_datakyougou

リンクされているSQL Server のデータを更新しようとすると、上記の画面の競合エラーが表示されます。それも特定のデータだけで、他のだれもそのデータを参照すらしていません。

原因

該当するテーブルに bit 列 があり、かつ 該当データが Null であると型の不一致が発生する。そのため、データを変更していないにもかかわらず、「変更した」と誤って判定されている。

解決方法

bit データ型に関する問題を解決するには、以下を実行します。

  • bit型の列において Null を 0 (または1) に置き換える

例) UPDATE T_hoge Set hoge = 0 Where hoge is Null;

  • SQL Server を使用して、デザイン ビューでテーブルを開き、すべてのbit フィールドに規定値 0 (ゼロ) を割り当てる
  • Access データベース (*.mdb) の代わりに、Microsoft Access プロジェクト (*.adp) を使用する

https://support.microsoft.com/ja-jp/kb/280730

解決しましたら、いいね か ツイート をお願いします

[Access2010]ラインタイム版サイレントインストール

サイレント・インストール用のセットアップファイルを自作しなければなりません

以下はその方法

  1. セットアップファイルをダウンロードしてきます。現在はこちらにあるようです。
    http://www.microsoft.com/ja-jp/download/details.aspx?id=10910
  2. ダウンロードしたファイルを以下のコマンドオプションをつけて中身を取り出します。
    例) AccessRuntime.exe /extract:解凍先path
  3. メモ帳などで以下の中身のファイルを作成し、名前は config.xml とします。そして上記の解凍先path\setup.exe と同じフォルダに保存します。

<Configuration Product=”AccessRT”>
<Display Level=”full” CompletionNotice=”no” SuppressModal=”yes” AcceptEula=”yes” />
</Configuration>

これで準備は完了です。サイレントインストールを実行するには
解凍先path\setup.exe /config 解凍先path\config.xml
となります。
ちなみに、xml の中身の
Display Level を none にすると、全く表示されずにインストールが完了します。

解決しましたら、いいね か ツイート をお願いします

[ACCESS2010]”オブジェクトに対して行った変更を保存できません”を非表示

[ACCESS2010]”オブジェクトに対して行った変更を保存できません” を非表示にさせる

埋め込みOLEオブジェクトの閲覧だけでも,更新していないにいちいちメッセージが表示される場合がある。
PDFファイルを埋め込んでいる場合など。

以下のコードで対応

解決しましたら、いいね か ツイート をお願いします

[Access2000]32bit版 Windows7 64bit で動く?

結論から:

問題なく動作している。ちなみに、Oracle サーバーへ接続させているMDBもあるが、 クライアントツールを32bit でインストールしておけば リンクテーブルも動作している。

また、SQL Server に接続もしてみたが 普通に動作している。

解決しましたら、いいね か ツイート をお願いします

[Access]VBAでPDFを自動出力する Bullzip

Accessの印刷をPDFにするための方法(無料で!!)
クセロPDFのような広告が表示されないのでGOOD!
VBAで出力先のフォルダ、ファイル名を指定できるGOOD!

フリーソフト Bullzip をインストール
http://www.bullzip.com/products/pdf/info.php

“Bullzip PDF Printer” が作成される

VBAで以下のコードを記述

Dim objPrinterSettings As Object
Dim toFile As String

toFile = “c:\TEST.pdf”

‘PDFプリンタの設定
Set objPrinterSettings = CreateObject(“Bullzip.PDFPrinterSettings”)

‘保存するためのプリンタ設定を行う
With objPrinterSettings
.SetValue “output”, toFile
.SetValue “showsettings”, “never”
.SetValue “ConfirmOverwrite”, “yes”
.SetValue “ShowPDF”, “no”
.WriteSettings True
End With

Docmd.OpenReport “R_HOGEHOGE”

”必要であればこの下にPDFが出力されるまで待機するロジックを追加しておきます”

これでOK。

.SetValue に関する詳細は
http://www.bullzip.com/products/pdf2/doc/info.php

注意点:Docmdでレポートの印刷をする際に、Bullzip PDF Printer を標準にするか、レポートのプリンター指定をBullzip PDF Printerにしておく必要がある。つまりレポート印刷はBullzip PDF Printerが使われるようにしておく必要がある。
ACCESS2002以上のバージョンならプリンタ切り替えが簡単だが、それより前のバージョンだとOS標準プリンタをAPIを駆使して切り替えるか、レポートのページ設定でプリンタを固定で設定するかしないといけない。

追加で注意点:もしPDFの出力を連続で行う場合、2つ目の出力は1つ目のPDF出力が開始された後でないとだめのようです。プリンタスプールにたまったのち、実際のPDF出力が始まりますが、連続PDF出力など行うと2つ目のBullzipに送る設定情報が1つ目に反映されてしまいボロボロに。PDF出力実行したのちは出力が完了するまで待機させる必要があります。

解決しましたら、いいね か ツイート をお願いします