質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

4048閲覧

FROM句の構文エラーですを解決したい

yasabe

総合スコア2

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2023/07/19 05:34

実現したいこと

なぜ「 FROM句の構文エラーです」が出るのか原因を知りたい

前提

AccessVBAでデータを更新する機能を追加しようとしています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

「実行時エラー ‐2147217900 (80040e14); FROM句の構文エラーです」

初めて質問します。よろしくお願いします。
下記の定義で実行しようとすると最終行で「実行時エラーFROM句の構文エラーです」
というエラーが出て先に進めません。

'---------------------------------------------------------------------------------------------------- Dim Cnn As ADODB.Connection Dim rs As New ADODB.Recordset Dim strSQL As String '---------------------------------------------------------------------------------------------------- ' Set Cnn = CurrentProject.Connection strSQL = "SELECT * FROM [DBSV].[dbo].[T_あああああ];" rs.Open strSQL, Cnn, adOpenForwardOnly, adLockReadOnly

試したこと

SqlServerに貼って実行すると正しい結果が返ってきます

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sk.exe

2023/07/19 05:51

カレントデータベース上のいずれかのテーブルを参照しようとしているのか、 SQL Server データベース上のいずれかのテーブルを(リンクテーブルを介さずに) 参照しようとしてるのか、どちらなのでしょうか。 前者の場合は、単にカレントデータベース上におけるそのテーブルの名前だけを FROM 句に記述すればよいだけです。 T-SQL のようにデータベースやスキーマまで指定するのはむしろ余計です。
m.ts10806

2023/07/19 06:15

現状提示されているのは実装であって定義ではないと思います。 細かいですが大事です。 DB側の定義やDB接続の設定部分を提示したほうが良いかもしれません。
YT0014

2023/07/19 12:49

SQL文末の;(セミコロン)を外したらどうなりますか?
guest

回答2

0

多数のプログラムの中で単独で動くということで作成していて
久々の修正でグローバル変数のことすっぽり抜けており
Set Cnn = CurrentProject.Connectionの行では、デバッグしても想像する値が入ってきてなかったこと
ほかのプログラムを見て動きを調査したところ、そもそも個人で定義する必要がなく
グローバル変数を使っていなかったために起きた現象でした。
修正前は
strSQL = "SELECT * FROM [DBSV].[dbo].[T_あああああ];"の記述は
DefaultDatabaseをグローバル変数から正しい値を取得したことで
strSQL = "SELECT * FROM T_YI_債務者名読替"
のみの記述ですみました。

投稿2023/07/21 04:53

yasabe

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

sk.exeさん

後者です。
こちらは解決しました。ありがとうございました
新たなエラーが出ましたが、また調査します。

m.ts10806さん

全体は違いますが最初の部分は定義というのではないでしょうか。。。
そちらも実装というのでしたらこちらの認識不足でした。

YT0014さん

ほかのソースをみたところ、セミコロンはついていませんでした。
ご指摘ありがとうございました。

投稿2023/07/20 01:22

yasabe

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YT0014

2023/07/20 05:24

どのようにして解決したのかをお願いします。
yasabe

2023/07/21 04:54

記述しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問