• 締切済み

Access2007への移行で動かなく・・・

よろしくお願いいたします。 Access2000で作成されたVBAのプログラムをAccess2007に移行しました。 そこでEXCELを入力して帳票出力している部分があるのですが、そこでエラーになるようになってしまいました。 ==エラーの部分== SQL = "SELECT * FROM `Sheet1$` IN 'c:\data.xls' 'EXCEL 8.0;'" Me.RecordSource = SQL これで“FROM句の構文エラーです。”と表示されるようになってしまいました。 色々と試してみましたが、どうしてもエラーになってしまいます。 どうか、お助けください。 ちなみにEXCEL 8.0をEXCEL 12.0に変更しても同じでした。

みんなの回答

  • assault852
  • ベストアンサー率48% (1364/2797)
回答No.1
papope
質問者

お礼

ご参考サイト、ありがとうございます。 マルチポストになりますので、ここは〆させていただきます。

関連するQ&A

  • Access VBAからcsvの出力について

    Access VBAからcsvの出力について Select * into csvファイル From テーブル名 Where ••• Where句なし、全件ではちゃんと出力できるのですが、 Where句ありだと0件になってしまいます。 Where句指定はできないのでしょうか? よい方法があれば教えてくださいm(._.)m 環境はフロントAccess ,DBはSQL server バッチでの出力も試みましたが、 Serverがあるフォルダにアクセス権限がないため、 断念しました。

  • Access2007からADO接続にてEXCEL

    Access2007からADO接続してEXCELのシートにSELECT文を発行すると、 『[Microsoft][ODBC Excel Driver]選択された CollatingSequence は OS でサポートされていません。』のエラーが出ます。 SELECT文に条件を付けると上記エラーが発生します、条件なしの場合はエラーが発生しません。 エラーが発生してもデバッグで F8 で実行すると正常に条件付きでSELECTされます、 エラーは一回目のSELECTだけで、以降はエラーが発生しません。 対処の方法をお教え下さい。 よろしくお願いします。 (("Microsoft.Jet.OLEDB.4.0"を使用してもエラーが発生しました。)) (例) 'テンポラリファイルを取り込む Dim querydef As DAO.querydef Dim adoCON As New ADODB.Connection Dim adoRS As New ADODB.Recordset Dim strV As String Dim strQ As String 'ADOを使い読み込み専用モードでExcelファイルを扱う準備(オープン)をします adoCON.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; " & _ "DBQ=" & "C:\test2014.xlsx" & ";" & _ "ReadOnly=True" 'SQLを実行(全件検索)   OK Set adoRS = adoCON.Execute("SELECT * FROM [Shite1$]") 'SQLを実行(条件付き検索) NGエラーが発生します。 Set adoRS = adoCON.Execute("SELECT * FROM [Shite1$] WHERE A = 7 ")

  • access vbaでExcelファイル作成に関する質問

    こんにちは ACCESS VBAでExcelの帳票作成に関する質問です 下記のコーディングで帳票を作成して値を書き込む。そして帳票オブジェクトを開放する FileCopy c:\template.xls c:\Report.xls Set xlWB = GetObject("c:\Report.xls") Set xlSH = xlWB.Workssheets(1) xlSH.Cells(1,1) = 100 xlWB.Save xlWB.Close set xlSH = nothing set xlWB = nothing しかし、作成したReport.xlsが開くとしても中身が見えない。 必ずReport.xlsをダブルクリックして、開いたExcelのメニューの「ウィンドウ」→「再表示」→「Report.xls」を操作しなければ帳票が見えないのです。作成した帳票は普通のようにダブルクリックしたら開けるようになってほしい。どうすればいいでしょうか、詳しい達人がいらっしゃいましたら、ぜひ教えてください。 どうもありがとうございます。

  • 【Access2007】サブフォームのRecordSourceの設定で

    【Access2007】サブフォームのRecordSourceの設定で実行時エラー 2146500594が発生します。 Access2007SP2で、メインフォーム上に帳票フォーム形式のサブフォームがあります。 サブフォームのRecordSourceプロパティを下記のようなコードで設定していますが、添付画像のようなエラーになってしまいます。 Forms![親フォーム]![サブフォーム].Form!RecordSource = strSQL strSQL(sql文)自体は正しく値を取得できることを確認済みです。 原因や解決策を何度か検索してみましたが、見つかりませんでした。 対処方法をご存知でしたらご教示お願いします。

  • Access2000にExcel2000のデータを読み込みたい。

    Access上のVBAでExcelよりデータを読み込もうと思います。 最終行を求めるに xlUp を使用しようと思いましたが、 #実行時エラー '1004' #Rangeクラスの Select メソッドが失敗しました。 となります。 どこをがおかしいでしょうか?   Dim wb As Excel.Workbook   Dim ws As Excel.Worksheet   Set wb = GetObject(C:\abc.xls")  '---オープン確認   Set ws = wb.Worksheets("Sheet1")   ws.Range("A65536").Select   '----実行時エラー   ws.Selection.End(xlUp).Select         また、abc.xlsにマクロが含まれているためにマクロを有効にするかどうかの確認メッセージがでます。これを有効、無効どちらでもいいですが、メッセージ無しに開くにはどうすればいいでしょうか?

  • ACCESSでパススルークエリにパラメータを使用したい

    毎度お世話になっております。 WindowsXP、Access2003、SQLServer2000を使用しております。 ADOでSQLServerからデータを抽出したいのですが、 パラメータを使用したいと考えております。  SELECT CODE FROM テーブル1  WHERE CODE = ? とし  adoCmd.CommandTimeout = 0  With adoCmd   .CommandText = strSQL   .CommandType = adCmdUnknown   .Prepared = False   .Parameters.Refresh  End With  adoCmd.Parameters(0).Value = InputBox(Trim(strBuf))  Set adoSet = adoCmd.Execute とすることで動作しました。 しかしSQL文を下記に変更したところエラーになりました。  SELECT t1.CODE FROM  (SELECT CODE FROM テーブル1 WHERE CODE = ? ) as t1  LEFT JOIN  (SELECT CODE FROM テーブル2 WHERE CODE = ? ) as t2  ON t1.CODE = t2.CODE のようにすると、  .Parameters.Refresh の部分で 実行時エラー -21474672595(80004005) 構文エラーまたはアクセス違反です。 となってしまいました。 2つの?の内、片方を定数に、片方を?にしてもエラーになりました。 ?を両方とも定数にすれば実行できました。 JOIN句がある場合に?を使ってはいけないのでしょうか。 何がエラーの原因かわからない状態です。 ご教授お願いいたします。

  • accessでDISTINCT 句と矛盾

    IIFで置き換えをした結果をソートしようとしましたが、 SELECT DISTINCT a,IIF(IsNull(b), 0, 1) AS c FROM shain ORDER BY a,c [Microsoft][ODBC Microsoft Access Driver] ORDER BY 句 (c) が DISTINCT 句と矛盾しています。 というエラーになりました。 正しいSQLを教えてください。 SELECT DISTINCT a,IIF(IsNull(b), 0, 1) AS c FROM shain ORDER BY a,b も試しましたが同じようにエラーになりました。

  • Excel VBA からインターネットアクセスをする方法

    こんにちわ。いつもお世話になってます。 急いでいませんので、お時間に余裕のあるときにお答えいただけたらと思いますので、 よろしくおねがいいたします。 今まで、中小企業向けの社内アプリケーションは 帳票:ExcelのSheet 業務ロジック:Excel-VBA DB:Access という構成で作ったりしていたのですが、 最近はやっぱりWebでのシステムも多くて、PHPやPerlだけで帳票・業務ロジックを構築していました。 ですが、やっぱり帳票はExcelで作るのが楽だし、 コントロールも、WebのものよりVBAの方が便利なので、 可能であれば下記の構成で作れないかなと思っています。 帳票:ExcelのSheet 業務ロジック:Excel-VBA(Client)、PHP(Server) DB:MySQL(Server) これを実現するにあたって、Excel-VBAからHTTPアクセスの仕方がわからなくて困っているのですが、 参照設定や、使い方などを解説しているサイトなどをご紹介していただけるかたがいらしたら、是非ご教示願います。 以上、よろしくおねがいいたします!

  • Access2000で条件付き検索の方法?

    アクセス2000でWHERE句に 年月日 等の条件付きSELECT文を実行したいのですが 構文等の構成が分かりません。  以前は、EXCELで何とかプログラムが組めたのですが、アクセスは今回初めての試みで、 だいぶ勝手が違い戸惑っています。 「逆引きExcel VBA」、「逆引きVB6」その他「アクセスVBA」本等 文章を探してみましたが、 それぞれ、DAO、ADO、Commandを使うやり方を紹介してるのでが、うまくいきません。 「AccessVBA+SQL実践活用」という本では、次のように書いてあります。 Connectionオブジェクトをつかったプロシージャー cn ,rs, mySQL の変数宣言 Set cn=CurrentProject.Connection Set rs=New ADODB.Recordset mySQL="SELECT ***********  rs.Source=mySQL rs.ActiveConnection=cn rs.Open これでデータが取れて、変数に入れています。あと cn , rs をとじて終了  このほか、Commandオブジェクトを使う方法も紹介していますが、同じようなものです。 この方法だと、rs.Openのところで「引数不足」というコメントが出て、デバッグ中断します。 rs.Open("テーブル名")と書いても「引数不足」とコメントされます。 検索自体は、SQL文のところでWHERE 句 に =年月日 又は、特定の=番号と等しいFIELDの検索 なんですが、その前後の手順がわかりません。 VB6の時のようにConnectionString="MsProvider********** と書く方法の方がただしいのか、 わかりません。この構文も今ひとつ手順が、はっきりわからないので困っています。 ソフトは、Win7(64ビット) Access2000 です。 尚、DAOをつかった、ファイルを読み込みDBテーブルに書き込みするのは出来ています。 わかる人がいたら、是非是非おしえてください。 この文だけで、だいぶ時間をかけてしまいました。  よろしくお願いします。

  • Access にて DISTINCROW を使用した INSERT SELECT

    お世話様です。 Access2003 VBAにて、DoCmd.RunSQLを使用してSQL文を流す際、 普通のINSERT-SELECT文はOKですが、 そのSELECT文にDISTINCROW句を使用していると、 数百件程度のSELECT結果しかINSERTできません。 本当は数千件のSELECT結果をINSERTしたいのですが、 これを実行した場合、エラーにもならず、1レコードもINSERTされません。 ためしに、DINSTINCTROWではなく、SQL文を変更してDISTINCTにしてみたところ、 2000件以上でもINSERTできました。 DISTINCROW句を使用して数千件でもINSERTできる方法はあるでしょうか? ちなみにSELECT単体ですと、DISTINCTROWを使用していながら、 数千件でも結果を表示できます。 SQL例: str_SQL = " INSERT INTO 結果テーブル(フィールド1, フィールド2, フィールド3)  SELECT DISTINCTROW A.項目1, A.項目2, B.項目1  FROM テーブル1 A, テーブル2 B  (WHERE句はあってもなくても現象変わらず)  ORDER BY A.項目4 ASC, A.項目5 ASC " DoCmd.RunSQL (str_SQL) よろしくお願いいたします。

専門家に質問してみよう