こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセルVBAとsqlserverについて

ご教授ください

エクセル2010を使用しています。
OSはWin7です。

エクセルVBAでユーザーフォームを作成し
そこに入力した値からSQLを発行して
データを取るようにしたいのですが
どのようにすればいいのでしょうか。


select day from AAA
where day = ********************

※ *にユーザーフォームから入力した値を渡したいのです。
   *はyyyymmdd形式で入力します。


以上、よろしくお願いします。

投稿日時 - 2014-06-27 12:59:52

QNo.8655385

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

SQLを使ってデータアクセスするのではなくて、SQL Serverに接続してデータを取得したいのですね。私はあんまり詳しくないんですが、どうもADODBオブジェクトを利用するようですね。こんな感じでやるようです。

Dim con As ADODB.Connection
Dim rs As ADODB.Recordset

Set con = New ADODB.Connection
con.connectionString = "Provider=プロバイダ.1;Data Source=データソース;Initial Catalog=データベース; Trusted_Connection=yes;"
con.Open
Set rs = New ADODB.Recordset
rs.ActiveConnection = con
rs.Source = "SELECT * FROM テーブル"
rs.Open
Range(レンジ).CopyFromRecordset rs
rs.Close
con.Close

実際やってないので、ADODBについて調べてみてください。

投稿日時 - 2014-06-28 11:27:28

ANo.1

SQL発行? データを取る??

んー。とりあえず。
ユーザーフォームに入力したものは何でしょうか。

Textboxに入力して、Commandbutton1とかを押して実行する・・・のなら

Private Sub TextBox1_AfterUpdate()
  If Not IsDate(TextBox1.Text) Then
    MsgBox "「日付」と認識出来ません。", vbCritical
    Textbox1=""
  End If
End Sub
日付のみ入力できるようにする方法です。


http://www.accessclub.jp/urawaza/10.html
上記リンクも参考にしてみてください。

Format(Date, "yyyy/mm/dd")
上記行はDate変数に入ったものをyyyy/mm/ddに変換してます。
上記を試しにMsgboxで出力すると 2014/06/27 と出ると思います。

もっと詳しい状況を教えて頂ければ、回答できるかと思います。

投稿日時 - 2014-06-27 14:13:10

あなたにオススメの質問