私は個人的にいくつかのデータベース プログラムを行うことが多いため、プログラムとデータベース間のインターフェイスをどのようにするかという問題を深く理解しています。なぜなら、VB がデータベースに接続するとき、通常、データベースは静的、つまりデータベースが保存されているパスだからです。 VBのDATA、adodc、DataEnvironmentなどを使ってデータベースに接続する際、データベースを保存するパスが変更されるとパスが見つからなくなり、非常に面倒な問題が修正されました。
著者の解決策は、app.path を使用してこの問題を解決することです。
1. 次のように、データ コントロールを使用してデータベースに接続します。
form_load() プロセスを追加します。
PRivateform_load()
DimstrAsString の定義
str=アプリのパス
IfRight(str,1)<>"/"Then
str=str "/"
EndIf
data1.databasename=str&"/データベース名"
data1.recordsource="データテーブル名"
データ1.リフレッシュ
サブエンド
これらの文の意味は、現在のプログラムが実行されているディレクトリでデータベースを開くことです。
必要なのは、プログラムが配置されているディレクトリにデータベースが存在することを確認することだけです。
2. データベース リンクに adodc (ADODataControl) を使用します。
privateform_load()
DimstrAsString の定義
str=アプリのパス
IfRight(str,1)<>"/"Then
str=str "/"
EndIf
str="Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource="&str&"/tsl.mdb"
Adodc1.ConnectionString=str
Adodc1.CommandType=adCmdText
Adodc1.RecordSource="select*fromtable3"
Adodc1.リフレッシュ
エンドサブ
3. データベースリンクに DataEnvironment を使用する
プロセスに入れることができます:
エラー発生時再開次へ
IfDataEnvironment1.rsCommand1.State<>adStateClosedThen
DataEnvironment1.rsCommand1.Close'開いている場合は閉じます
EndIf
'i=InputBox("友達番号を入力してください:", "Enter")
'Ifi=""その後ExitSub
DataEnvironment1.Connection1.OpenApp.Path&"/userdatabase/tsl.mdb"
DataEnvironment1.rsCommand1.Open"select*fromtable3wherenumber='"&i&"'"
'SetDataReport2.DataSource=データ環境1
'DataReport2.DataMember="コマンド1"
'DataReport2.show
エンドサブ
4. ADO (ActiveXDataObjects) を使用したプログラミング:
接続を確立します。
dimconnasnewadodb.connection
dimrsasnewadodb.レコードセット
ディムストラ
str=アプリのパス
IfRight(str,1)<>"/"Then
str=str "/"
EndIf
str="Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource="&str&"/tsl.mdb"
conn.openstr
rs.cursorlocation=aduseclient
rs.open"データテーブル名",conn,adopenkeyset.adlockpessimistic
使用後はデータベースを閉じます。
接続閉じる
setconn=何も->