少し背景を先にしてください。私が働いているところでは、プログラミングツールへのアクセスが制限されています。私たちはMicrosoft Officeスイートにアクセスすることができます。したがって、より良いソリューションがあるにもかかわらず、ほとんどのプロジェクトはAccessで作成されます。私たちは最近、Visual Studio 2013へのアクセス権を取得しました。私はより多くのツールをVB.NETプロジェクトに変換することに興味があります。ODBC接続のデータをMS Accessデータベースに選択してください
私はVBAを長年使ってきたことをよく理解していますが、VB.NETへの変換は間違いなく変化しています。私はそれを理解していますが、 VB.NETに存在します。
私は次の質問につながります。
1つのデータベース、ODBC接続に接続して、そのデータベースのテーブルから選択したフィールドをMicrosoft Accessデータベースのテーブルに配置するにはどうすればよいですか?
ここは私の現在のコードです。
Imports System.Data.Odbc
Imports System.Data.Odbc.OdbcCommand
Imports System.Data.OleDb
Public Class Form1
Dim conn As OdbcConnection
Dim connBE As OleDb.OleDbConnection
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Call Connect_SLICWave()
Call Connect_Backend()
Dim sqlInsert As String = "INSERT INTO tblUOCs (EIAC,LCN,ALC,UOC) SELECT DISTINCT Trim(EIACODXA),Trim(LSACONXB),Trim(ALTLCNXB),Trim(UOCSEIXC) FROM ALAV_XC"
Dim beCmd As New OleDb.OleDbCommand(sqlInsert, connBE)
beCmd.ExecuteNonQuery()
End Sub
Private Sub Connect_SLICWave()
Dim connectionString As String
connectionString = "Dsn=slic_wave;uid=userid;pwd=password"
conn = New OdbcConnection(connectionString)
End Sub
Private Sub Connect_Backend()
Dim connectionStringBE As String
connectionStringBE = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\database.accdb"
connBE = New OleDb.OleDbConnection(connectionStringBE)
End Sub
End Class
これは明らかに機能しません。私はインターネット上の例に基づいていくつか試してみましたが、どんな種類のコードでも動作させることはできませんでした。
Accessデータベースを使用している場合は、ODBC接続とバックエンドAccessデータベースの両方のテーブルにリンクするだけで、DoCmdを使用してSQLを実行して必要に応じてデータを移動できますが、その贅沢を持っています。おそらく、私はVisual Studioに関する知識が不足しているため、このすべてが間違っていると思います。
私の最終目標を達成するより良い方法はありますか? ODBC接続のデータを参照してどこかに格納して、特定のデータセットをエンドユーザーに出力できるようにする必要があります。 DataSetまたはDataTableを使用することはできますか?プログラムが不安定になる前に、どのくらいのデータをDataSet/DataTableに保存できますか?このプロセスで使用されるデータは、時には非常に過度になる可能性があります。
通常、ユーザーはツールに4フィールドまたは5フィールドのデータを含むいくつかの基準を送信します。このツールは、約5〜7テーブルのジョインを使用して、ODBC接続データベースから適切なデータセットを取得するためにその基準を取得し、その基準を取得し、1組のデータをユーザーに返します。はい、少し余計ですが、それが必要です。
あまりにも一般的でなくてもこれを十分に説明したいと思います。私のビジネスの性質上、具体的な事例を提供することができません。
申し訳ありませんが、私はこの問題を解決するのに役立つ努力を感謝します。明確にする必要があるものがあれば教えてください。私はそれをより明確に説明しようとします。
一度に扱う行の数はいくつですか? – Plutonix
それはさまざまですが、全体的に見て、私が引っ張っているデータベースは大規模で、何百万ものレコードであり、時にはテーブル全体をプルする必要があります。 –
2つのテーブルがデータベースに保存されている場合、なぜ更新やクエリへの挿入が機能しないのかわかりません。問題は、データソースが2つの異なるデータベースである場合です。 –