![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_16.png?5a7ff87)
下記のソースは、
UserIDとPasswordをDBと照らし合わせて、
そのUserが存在すればTrue、存在しなければFalse
を返すというプログラムです。
しかし初めてDBに接続し、まったく右も左も分からない
状況なので処理的におかしな点を教えていただけないでしょうか。
またDB接続からSQL実行までの簡単な流れを教えていただけると助かります。
adoRs = ADODB.Recordset
adoCn = ADODB.Connection
adoCd = ADODB.Command
Login.txtName.Text = 比較するユーザー名
Login.txtPass.Text = 比較するパスワード
です。その他わかりにくい点があったら質問を
お願いします。
Private Function Func_UserSerch() As Boolean
Func_UserSerch = False
On Error GoTo UserSerchError
'レコードセットの取得
With adoRs
.ActiveConnection = adoCn
.Source = "user"
.CursorType = adOpenStatic
.LockType = adOpenForwardOnly
.Properties("IRowsetIdentity") = True
.Open
End With
MySQL = "SELECT * FROM user " & _
"WHERE UserID = " & Login.txtName.Text & _
"AND Password = " & Login.txtPass.Text & ";"
'SQLの実行
With adoCd
.ActiveConnection = adoCn
.CommandType = adCmdStoreProc
.CommandText = MySQL
.Execute
End With
If adoRs.EOF = True And adoRs.BOF = True Then
Func_UserSerch = False
Else
Func_UserSerch = True
End If
UserSerchError:
MsgBox "SQL実行中にエラーが発生しました"
End Function
No.2ベストアンサー
- 回答日時:
動くサンプルを作ってみました。
DBファイルはC:\VB\DB\USER.mdb
ポイントはパラメータが文字列の場合、" ' " で囲ってやる必要があるところです。
TrueかFalseはレコード数でチェックしてはどうでしょうか? 0でなければ True・・・
Private Function Func_UsemyRSerch()
Dim myCN As ADODB.Connection
Dim myRS As ADODB.Recordset
Dim mySQL As String
Dim Para(1) As String
' データベースに接続
Set myCN = New ADODB.Connection
myCN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
& "Data Source=C:\VB\DB\USER.mdb"
myCN.Open
Para(0) = "UserName" 'ID
Para(1) = "PassWord" 'PASS
' 選択クエリーを作成 (文字列は " ' " で囲む必要あり)
mySQL = "SELECT * FROM ユーザー管理 " _
& "WHERE ユーザー名 = '" & Para(0) & "' AND パスワード = '" & Para(1) & "'"
' レコードセットを取得
Set myRS = New ADODB.Recordset
myRS.Open mySQL, myCN, adOpenStatic
'認証されるかどうかはレコード数でチェック
If myRS.RecordCount >= 1 Then
Func_UserSerch = True
Else
Func_UserSerch = False
End If
End Function
No.1
- 回答日時:
とりあえずはどのMDBに接続するかが抜けている気がします。
Set adoCn = New ADODB.Connection
adoCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
& "Data Source=C:\VB6\DB\abc.mdb"
adoCn.Open
って感じでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UPDATE時にSETしたい日本語文字...
-
【VB】コンボボックスにデータ...
-
初心者ですデータベースの形式 ...
-
名前'dbOpenDynaset'は宣言され...
-
VB6.0でSQLServerへ・・・Recor...
-
VBSでADOを使ってaccessのテー...
-
Javaでデータベースにアクセス
-
ExcelVBAでのAccessデータベー...
-
VBA 変数名に変数を使用したい。
-
ファイル名の一部削除について
-
「Nullの使い方が不正です」の...
-
AccessからExcelへエクスポート...
-
VBAでアクセスDBからデータの取...
-
C#でbyte配列から画像を表示さ...
-
DataTableに特定のフィールドが...
-
VB6.0の「vbFromUnicode」はVB....
-
vba フィルター 複数条件 3つ以...
-
VBAコンボボックスの内容が反映...
-
定数配列の書き方
-
XMLでデータとして画像を指定す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】コンボボックスにデータ...
-
UPDATE時にSETしたい日本語文字...
-
複数SQL発行について
-
初心者ですデータベースの形式 ...
-
VB6.0とaccessのDBを接続する
-
VB6.0でSQLServerへ・・・Recor...
-
データベースの接続ができない
-
PHP+ACCESSのデータベース接続...
-
名前'dbOpenDynaset'は宣言され...
-
ListviewにDB内容を表示し方に...
-
vb.netでデータベース(Access)...
-
OracleDataReaderについて…
-
VBSでADOを使ってaccessのテー...
-
VBでAccessにSQL文を実行して値...
-
VBでmdbファイルの抽出
-
PHPでのsqlite_close();について。
-
Accessを編集するとASPで接続で...
-
レンタルサーバでのDB接続の件
-
[ASP]エラー プロバイダが指...
-
VB2005でmdbに接続するには?
おすすめ情報