プロが教える店舗&オフィスのセキュリティ対策術

Windows XPにMSアクセス97をインストールしました。
OLEオブジェクト型でjpgファイルをフォームで挿入したのですが
フォームに文字が出るだけで写真が映りません。
ヘルプを見ると、フィルターが必要とのことでoffice97の
CDからインストールしたのですが変化ありません。
どうしたらいいのでしょうか。

A 回答 (6件)

>jpgファイルではだめなのでしょうか


Jpegも問題なく表示できるはずですが・・。
PhotoEditor等のofficeに付属されているグラフィックソフトはインストされていますよね。もしくはペイントでJpegが関連付けされていれば扱えるはずです。
扱えない場合はjpegの形式はサポートされていないため・・のメッセージが表示されます。
>実行時エラー:2220と出て、C:\Document And Setting・・を
正確なパス及びファイル名が取得できていません。
C:\Document And Setting・・とでるという事は[パス名]のフィールドにパスがなかった場合にC:\Document And Setting・・でセットした画像を表示しようとしてパスやファイル名に誤りがあるため表示できていないという事です。
パスがない場合表示するようにした画像のフルパス及びファイル名を確認してください。フォルダを開きそのjpgのプロパティを開けばフルパスが表示されているのでそれをコピーして記述にペーストするがパスが正しいか確認してください。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。フォトエディタではなく
フォトマネージャーが入ってますが。
パスは合っていると思うのですが、ちょっとあきらめ気味なので一服させていただきます。
丁寧なご説明どうもありがとうございました。

お礼日時:2006/02/12 01:45

>イメージコントロールを配置すると「図の挿入」ウインドが出てきてファイルの選択を求められます


何か指定して配置してください。例えば画像等のパスが入力されていない場合表示しておく画像など指定してみてはどうですか。
例えばSample.jpgみたいなのをマイドキュメントのフォルダに置いておきそれを指定する。
>イメージコントロールのソースにテーブルのパスを代入するのはどうすればいいのでしょうか
>イベントには「レコードの移動時」という項目がないのですがクリック時などでもいいのでしょうか
フォーム自体のプロパティにレコードの移動時というイベントがありませんでしょうか。そこにコードビルダを開き
記述します。
前記のSample.jpgを利用してそのパスがC:\Documents and Settings\My Documents\My Pictures\Sample.jpgとした場合。コードビルダを開き

If Me![パス名] <>"" Then
   Me![Photo1].Picture=Me![パス名]
  Else
   Me![Photo1].Picture=C:\Documents and Settings\My Documents\My Pictures\Sample.jpg '"前記を利用して"パスに入力がない場合Sample.jpgを表示する
 End If

この記述を入れるとフォームに表示するレコードが次のレコードや他のレコードに変わった時(移動した時)にPhoto1というイメージコントロールのピクチャにテーブルのパスに入力されているJpegなどのフルパスが代入され実行されます。テーブルのパスに入力がない場合Sample.jpgが表示されます。
ボタンのクリックイベントなどに記述しても大丈夫ですが他のレコードに移動しても画像はボタンをクリックするまで変わりません。

この回答への補足

イベントにレコードの移動時というのがありました。
イベントプロシージャのところに文を書いてみたのですが
フォームビューにてレコードを移動すると、実行時エラー:2220と出て、C:\Document And Setting・・・・を
開くことができませんとなります。
jpgファイルではだめなのでしょうか。
何度も何度もすみません。

補足日時:2006/02/06 19:43
    • good
    • 0

>この場合テーブルには、写真をどのような型で記録し


フォームではどう表示することができますでしょうか。

テーブルにOLEオブジェクト型のフィールドを作りオブジェクトの挿入でビットマップイメージとしてテーブルに挿入すればそのテーブルを元に作った場合画像のフィールドは連結オブジェクトフレームとして配置されます。
レコードの移動と一緒にテーブルに挿入されているビットマップイメージも変わります。
オブジェクトの挿入でビットマップイメージで挿入すると通常はペイントが開くので編集からファイルから貼り付けを選び画像を挿入します。
しかし多くの画像を処理する場合は画像をテーブルに挿入するためmdbのサイズが増大してしまいますが多くなければ問題は無いと思います。

別の方法はOLEオブジェクト型とか使いません。
テーブルにテキスト型のフィールドでJpgファイルのパスをフルパスで入力しておきそのパスを使ってフォーム上に配置したイメージコントロールにリンクで表示させる方法。これはサイズが増大しません。
テーブルにC\Photo\Photo0001.jpgなどのようにファイルのフルパスを入力してそのパスをフォーム上のイメージコントロールのソースに代入させて表示させます。
フォーム上にパス名のコントロールを配置します。パスを見せたくない場合は可視をいいえにして見えなくします。
イメージコントロールの名前をPhoto1としてフォームのプロパティで[レコード移動時]のイベントに
Private Sub Form_Current()
If Me![パス名] <>"" Then
   Me![Photo1].Picture=Me![パス名]
  Else
   Me![Photo1].Picture="" 'パスがない画像がない場合表示しない
 End If
End Sub
のように設定しフォーム上のパス名に入った画像のパス\ファイル名をPhoto1のPictureソースに代入させ表示します。

この回答への補足

不勉強なものでもう少し教えてください。
フォーム上にイメージコントロールを配置すると「図の挿入」ウインドが出てきてファイルの選択を求められます。
フォーム上のイメージコントロールのソースにテーブルのパスを代入するのはどうすればいいのでしょうか。
また、イベントには「レコードの移動時」という項目がないのですがクリック時などでもいいのでしょうか。

補足日時:2006/02/05 23:12
    • good
    • 0

フォームをデザインで開きフォームツールバーにあるイメージを配置して表示したいJpegを指定すれば良いのですが・・。


またはメニューの挿入のオブジェクトではなく図を選び挿入すればイメージが挿入されませんでしょうか。
(97にイメージコントロールありますよね?)

もしくはPictureManagerでJpegを開けませんか?PictureManagerにJpegを関連付けしてみてはどうでしょうか。しかしパッケージで配置されるのではクリックもしくはダブルクリックしないとJpegが開かないのではないでしょうか。

この回答への補足

どうもありがとうございます。
フォームに写真を貼り付けたいのではなく、テーブルにある写真データの各レコードをフォームで表示させたいのです。
この場合テーブルには、写真をどのような型で記録し
フォームではどう表示することができますでしょうか。

補足日時:2006/02/03 23:09
    • good
    • 0

私も同じ現象で悩みました。



かなり昔なので詳しいことは忘れましたが、
確か「Microsoft Photo Editor」をインストールしたら
表示できたような気がします。

間違えていたらごめんなさい。
記憶は定かではありません。
    • good
    • 0
この回答へのお礼

どうも有難うございます。
ダブルクリックすると別ソフトが起動しそこでは見ることが
できるのですが、ちょっとそれではおもしろくないので。
MicrosoftのホームページにPhoto Editorのインストール方法が
書いてあったので同じ手順で進めたのですが
同じメニューが無くインストできないのです。
たぶん同様のソフトでPicture Managerというのが
入っているためにこれが後継か代わりなのだと思います。

お礼日時:2006/02/02 22:41

>フォームに文字が出るだけで写真が映りません。


OLEオブジェクトでパッケージで挿入したとか・・?
OLEオブジェクトではなくイメージでフォーム上に配置してみてはどうですか。

この回答への補足

有難うございます。
確かにテーブルのデータシートビューで見るとパッケージとなっています。
イメージで挿入するにはどうすればよいのでしょうか。
ツールバーで「挿入」→「オブジェクト」でファイルからを選ぶと
パッケージになってしまいますし、新規作成にチェックを入れると
オブジェクトの種類にはjpgはありません。

補足日時:2006/02/02 20:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!