none
Accessのレポートの印刷 RRS feed

  • 質問

  • はじめまして

    accessのレポートを印刷したいのですが

    http://support.microsoft.com/kb/317114/ja?spid=1266&sid=959のサンプルを入力してデバッグしても「型または名前空間名 'Access' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」とのエラーが出るのですが、改善策等わかりますでしょうか?

    よろしくお願いします

     

    2006年8月5日 2:42

回答

  • koyami さん、こんにちは。

     koyami さんからの引用
    最初の投稿でマイクロソフトの記載の通りにやったと書いたつもりだったのですが、言葉足らずだったのかもしれません。申し訳ありませんでした。

    いえ、私の書き方にも不適切な部分がございました。
    こちらこそ、申し訳ありませんでした。

    検索してみた所、Microsoft.Office.Interop.Access.ApplicationClassとMicrosoft.Office.Interop.Access.ApplicationClass.ApplicationClass()の二つが見つかりましたがこれがAccess名前空間なのでしょうか?

    うーん、あまり考えられないのですが、名前の衝突が起こっているのかもしれません。
    試しにですが、型宣言をする時に、using で省略した部分も含めてみてください。

    つまり、


    Microsoft.Office.Interop.Access.ApplicationClass acApplication = null;
     

    このように、フル名前空間で宣言することをお試しください。

    2006年8月7日 3:38
  • koyami さん、こんにちは。

     koyami さんからの引用
    Access.からだと続きが勝手に入力される機能が働かないのですが、Microsofft.から入力すると続きが勝手に入力される機能が有効になるようです。名前の衝突と関係あるのでしょうか?

    名前の衝突ではなく、using が正しくできていない可能性もありますね。
    このスレッドを建てた時、using はどのように書かれていましたか?

    今回の場合は、


    using Microsoft.Office.Interop;
     

    のようになるかと思います。

    また、名前の衝突を解決する方法はあるのでしょうか?
    入力に少し手間が掛かるだけで問題はないのですが・・・。

    もし名前の衝突が原因であるならば、まずは何と衝突しているのかを明らかにしなくてはなりません。
    どうしても衝突が発生する場合は、エイリアスを使うことで解決できます。


    using MyAccess = Microsoft.Office.Interop.Access;
     

    とすると、


    MyAccess.ApplicationClass acApplication = null:
     

    のように MyAccess という名前を使うことができます。

    2006年8月7日 4:54

すべての返信

  • koyami さん、こんにちは。

     koyami さんからの引用
    「型または名前空間名 'Access' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」とのエラーが出るのですが、改善策等わかりますでしょうか?

    私は、コンパイル エラーメッセージのとおりだと思っておりますが、
    コンパイル エラーに書かれたことを確認されたかどうかが、元の書き込みからではわからなかったです。

    コンパイル エラーに書かれた内容の意味がわからないのか、
    そもそも試していないのか、試したけどそれでも出来なかったのかわからないわけです。

    判明している箇所、問題解決のために何をしたのか、を最初に書いておかないと、
    こちらが逆に質問をして、わざわざ答えるという手間が生じます。

    最初にこれらを書いておけば、この私の書き込みは回答になっていたのかもしれません。

    2006年8月5日 3:22
  • じゃんぬねっとさん、はじめまして。

    以下に発言をしますが、当方ずぶの素人の為プログラミングに対する基本的な用語等わかっていませんのであらかじめ了承下さい。(そういうの突っ込まれても困るので・・・)

    上記のマイクロソフトのページに書いてある参照設定やusingディレクティブの追記はしております。

    それでもエラーが出るのですが、どうしてなのでしょうか?という質問ですよ?

    マイクロソフトのページに書いてあるとおりにやっても出来ないということは、自分の力では無理と言う事なんでしょうね・・・。

     

    2006年8月7日 2:57
  • koyami さん、こんにちは。

     koyami さんからの引用
    上記のマイクロソフトのページに書いてある参照設定やusingディレクティブの追記はしております。
    それでもエラーが出るのですが、どうしてなのでしょうか?という質問ですよ?

    失礼しました。

    最初のご投稿で、これらが明確に書かれていれば確認はしませんでした。
    私は koyami さんの隣にいる人ではないので、明示的に書かれていないことは、
    やはり念のため確認した上で、回答をすべきだと考えています。

    何はともあれ、参照設定はできているということは良くわかりました。

    では、また確認になってしまうのですが、オブジェクト ブラウザを用いて、
    'Access 名前空間があるかどうか' を確認してみてください。
    方法としては、[シンボルの検索]
    を用いて、ApplicationClass などで検索すると良いと思います。

    2006年8月7日 3:03
  • じゃんぬねっとさん、こんにちは。

    最初の投稿でマイクロソフトの記載の通りにやったと書いたつもりだったのですが、言葉足らずだったのかもしれません。申し訳ありませんでした。

    検索してみた所、Microsoft.Office.Interop.Access.ApplicationClassとMicrosoft.Office.Interop.Access.ApplicationClass.ApplicationClass()の二つが見つかりましたがこれがAccess名前空間なのでしょうか?

    2006年8月7日 3:23
  • koyami さん、こんにちは。

     koyami さんからの引用
    最初の投稿でマイクロソフトの記載の通りにやったと書いたつもりだったのですが、言葉足らずだったのかもしれません。申し訳ありませんでした。

    いえ、私の書き方にも不適切な部分がございました。
    こちらこそ、申し訳ありませんでした。

    検索してみた所、Microsoft.Office.Interop.Access.ApplicationClassとMicrosoft.Office.Interop.Access.ApplicationClass.ApplicationClass()の二つが見つかりましたがこれがAccess名前空間なのでしょうか?

    うーん、あまり考えられないのですが、名前の衝突が起こっているのかもしれません。
    試しにですが、型宣言をする時に、using で省略した部分も含めてみてください。

    つまり、


    Microsoft.Office.Interop.Access.ApplicationClass acApplication = null;
     

    このように、フル名前空間で宣言することをお試しください。

    2006年8月7日 3:38
  • じゃんぬねっとさん、お世話になります。

    フル名前空間で宣言する事で解決できました。ありがとうございます。

    この前、少しだけコードを入力したのですが、

    Access.からだと続きが勝手に入力される機能が働かないのですが、Microsofft.から入力すると続きが勝手に入力される機能が有効になるようです。名前の衝突と関係あるのでしょうか?また、名前の衝突を解決する方法はあるのでしょうか?

    入力に少し手間が掛かるだけで問題はないのですが・・・。

    とりあえず、Accessのオートメーションは解決できました。本当にありがとうございました。

     

    2006年8月7日 4:29
  • koyami さん、こんにちは。

     koyami さんからの引用
    Access.からだと続きが勝手に入力される機能が働かないのですが、Microsofft.から入力すると続きが勝手に入力される機能が有効になるようです。名前の衝突と関係あるのでしょうか?

    名前の衝突ではなく、using が正しくできていない可能性もありますね。
    このスレッドを建てた時、using はどのように書かれていましたか?

    今回の場合は、


    using Microsoft.Office.Interop;
     

    のようになるかと思います。

    また、名前の衝突を解決する方法はあるのでしょうか?
    入力に少し手間が掛かるだけで問題はないのですが・・・。

    もし名前の衝突が原因であるならば、まずは何と衝突しているのかを明らかにしなくてはなりません。
    どうしても衝突が発生する場合は、エイリアスを使うことで解決できます。


    using MyAccess = Microsoft.Office.Interop.Access;
     

    とすると、


    MyAccess.ApplicationClass acApplication = null:
     

    のように MyAccess という名前を使うことができます。

    2006年8月7日 4:54
  • じゃんぬねっとさん、こんにちは。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    using System.Diagnostics;
    using System.Reflection;です。下3つが追加(マイクロソフトのページに書いてあった)ものです。

    using Microsoft.Office.Interop;を追加してみましたがAccess.Applicationだとエラーが出ますし、Access.と入力しても続きが出てこないですね。

    using MyAccess = Microsoft.Office.Interop.Access;として

    MyAccess.ApplicationClass acApplication = null;

    とすればエラーも出ないですし、勝手に入力の機能も有効になるようです。

    エイリアスを使う方法で行きたいと思います。

    質問にお答えいただきありがとうございます。本当に助かりました。

    2006年8月7日 6:05
  • koyami さん、こんにちは。
    少しでもお力になれたようで、私も嬉しいです。

     koyami さんからの引用
    using Microsoft.Office.Interop;を追加してみましたがAccess.Applicationだとエラーが出ますし、Access.と入力しても続きが出てこないですね。
    using MyAccess = Microsoft.Office.Interop.Access;として
    MyAccess.ApplicationClass acApplication = null;
    とすればエラーも出ないですし、勝手に入力の機能も有効になるようです。

    であれば、やはり、名前の衝突が起きているように思えます。
    気になるようであれば、オブジェクト ブラウザにて 「Access」 で検索してみてください。

    シンボルの検索結果一覧に「Access」から始まる名前空間、クラス名などがないかを検証してみてください。

    2006年8月7日 7:48
  • じゃんぬねっとさん、こんにちは。

    オブジェクトブラウザで「Access」を検索してみましたが、いっぱい出てきて何がなんだかわかりませんでした。

    恥ずかしながら名前空間とかクラス名とか全くわかりませんので・・・。

    この名前空間の衝突の件は、もう少し勉強してから解決しようかと思ってます。

    お手数掛けました。

    2006年8月8日 1:00