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

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

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

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

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

解決済

Access VBA  フォーム作成 検索条件 前方一致のwhere句

nekomura
nekomura

総合スコア0

VBA

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

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

2回答

1評価

0クリップ

3449閲覧

投稿2016/03/14 04:23

編集2022/01/12 10:58

よろしくお願いいたします。

フォーム画面にボタンとテキストボックスを用意して、
'invoiceNo と'invoiceDisplay としたテキストボックスに検索条件を入力し、
ボタンを押下すると、accessで作ったテーブル(AccessTable )のデータ(接続文字列)を使って、
SQLサーバにあるテーブル(tbmCountry)の内容を取得し、フォーム上のリストに反映されるようにしています。

テキストボックスのいずれかに値が入っていれば、前方一致のWHERE句を作って件数を表示したいのですが、
私が書いたSQL文では実行されません。
誤り箇所が不明のため、有職者の方にご教示いただきたく存じます。

Option

'##################################################################### '# Name : データ取得_Click '# Description : 入力の画面に対し管理システムより指定したデータの取込 '##################################################################### Private Sub データ取得_Click() ' On Error GoTo Err_データ取得_Click '*****DB接続変数定義***** Dim DB As Database Dim q1 As Recordset, q2 As Recordset Dim SQLCommand As String 'データベース接続文字列を取得するSQL文 Dim strConnection As String 'データベース接続文字列 Dim strCount As Integer 'データ件数 Dim objCon As New ADODB.Connection Dim objRs As New ADODB.Recordset Dim dbCom As ADODB.Command Set DB = CurrentDb() 'データベース接続文字列を取得するSQL文 SQLCommand = "SELECT ID, Value FROM AccessTable WHERE ID = 1" Set q1 = DB.OpenRecordset(SQLCommand) '取得したデータベース接続文字列 strConnection = q1!Value 'データ件数を取得するSQL文(500という数字が入っています) SQLCommand = "SELECT ID, Value FROM AccessTable WHERE ID = 2" Set q2 = DB.OpenRecordset(SQLCommand) '取得したデータ件数 strCount = q2!Value '*****フォーム変数定義***** Dim invNo As Variant 'invoiceNo Dim invDisp As Variant 'invoiceDisplay invNo = Me.invoiceNo invDisp = Me.invoiceDisplay '検索条件が未入力の場合 If IsNull(invNo) And IsNull(invDisp) Then MsgBox "検索条件を指定してください" Exit Sub End If 'テキストボックスに値が両方、またはいずれかが入力されている場合 If Not IsNull(invNo) Or Not IsNull(invDisp) Then '接続文字列を取得しSQLサーバーへ接続 objCon.ConnectionString = strConnection objCon.Open //ここでエラー 記述の仕方が不明 objRs.Open "SELECT COUNT CountryCode, FROM tbmCountry WHERE CountryCode LIKE '_%' ", objCon, adOpenKeyset, adLockOptimistic objRs.Close objCon.Close Set objRs = Nothing Set objCon = Nothing End If

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

VBA

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

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。