回答編集履歴
2
コードを書き換え
answer
CHANGED
@@ -1,26 +1,28 @@
|
|
1
|
-
大昔に書いた VB6 のソースです。
|
2
|
-
環境が用意できないので検証していませんが、何かの参考になれば幸いです。
|
3
|
-
|
4
|
-
```
|
1
|
+
```vba
|
5
|
-
'
|
2
|
+
' iUser ORACLE に接続するユーザ名(テーブルが存在するスキーマ名を兼ねます)
|
6
|
-
'iMyDb リンクテーブルを作る Database オブジェクト
|
7
|
-
'
|
3
|
+
' iPassword ORACLE に接続するパスワード
|
4
|
+
' iDSN ORACLE に接続する DSN
|
8
|
-
'
|
5
|
+
' iTableName テーブル名
|
9
|
-
|
6
|
+
Sub CreateLinkTable(ByVal iUser As String, ByVal iPassword As String, ByVal iDSN As String, ByVal iTableName As String)
|
7
|
+
Dim strConnect As String
|
10
|
-
Dim
|
8
|
+
Dim attatchName As String
|
11
|
-
Dim
|
9
|
+
Dim db As Database
|
12
|
-
Dim
|
10
|
+
Dim tdf As TableDef
|
11
|
+
|
13
|
-
|
12
|
+
strConnect = "ODBC;DSN=" & iDSN & ";Uid=" & iUser & ";Pwd=" & iPassword
|
14
|
-
|
13
|
+
attatchName = iUser & "_" & iTableName
|
14
|
+
|
15
|
-
Set
|
15
|
+
Set db = CurrentDb
|
16
|
+
|
16
|
-
|
17
|
+
On Error Resume Next
|
17
|
-
pAttachTBL.SourceTableName = iUser & "." & iTablename
|
18
|
-
pAttachTBL.Attributes = pAttachTBL.Attributes Or dbAttachSavePWD
|
19
|
-
|
18
|
+
db.TableDefs.Delete attatchName
|
20
|
-
If Err.Number <> 0 Then
|
21
|
-
Exit Function
|
22
|
-
End If
|
23
|
-
DoAttach = True
|
24
19
|
On Error GoTo 0
|
20
|
+
|
21
|
+
Set tdf = db.CreateTableDef(attatchName)
|
22
|
+
tdf.Connect = strConnect
|
23
|
+
tdf.SourceTableName = iUser & "." & iTableName
|
24
|
+
tdf.Attributes = tdf.Attributes Or dbAttachSavePWD
|
25
|
+
db.TableDefs.Append tdf
|
25
|
-
End
|
26
|
+
End Sub
|
26
27
|
```
|
28
|
+
DSN は ODBC アドミニストレータで定義しますが、32bit/64bit に注意してください。
|
1
メッセージ削除
answer
CHANGED
@@ -18,7 +18,6 @@
|
|
18
18
|
pAttachTBL.Attributes = pAttachTBL.Attributes Or dbAttachSavePWD
|
19
19
|
iMyDb.TableDefs.Append pAttachTBL
|
20
20
|
If Err.Number <> 0 Then
|
21
|
-
ShowErrMsg "アタッチテーブル作成エラー", DBEngine.Errors(0).Description
|
22
21
|
Exit Function
|
23
22
|
End If
|
24
23
|
DoAttach = True
|