VB 에서 Access에 테이블을 만들고 연결하는 방법좀 알려주세요 부탁드립니다.
promichael 2005.01.06
19:19
답변 1| 조회 3,052
1.VB 에서 Access에 테이블을 만들고 연결하는 방법좀 알려주세요 부탁드립니다.
만약 1번이 불가능하면...
2. VB.net에 Access를 이용해서 데이터베이스 환경을 만들려고 합니다. Access 파일에는
1000개의 테이블이 있고요. 어떻게 연결할수 있나요?
만약 2번도 불가능하면...
3. 툴박스에 OleDbDataAdapter를 이용해서 1000개를 한꺼번에 설정하는 방법이
있나요?
만약 3번도 불가능하면...
4. 밑에 코드는 제가 나름데로 계속 시도하고 있는 파일인데요.
계속 에러 메세지가... 뭐가
잘못됐는지 좀 알려주세요.
"Update require a valid InsertCommand when passed DataRow
collection with new rows"
============================================================================
Private
Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Btn2.Click
'General object declarations
Dim objConnection As New
OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=e:\BiologicalSystem\VB\AEBERacewayMaster10\bin\input2003.mdb")
Dim
objDataAdapter As New OleDb.OleDbDataAdapter("Select * from A1",
objConnection)
Dim objDataSet As New DataSet, objRow As DataRow
objDataAdapter.FillSchema(objDataSet, SchemaType.Source,
"A1")
objDataAdapter.Fill(objDataSet, "A1")
'Add a record
objRow = objDataSet.Tables("A1").NewRow
objRow.Item("FeedDate") =
DateTime.Parse("11/29/2004")
objRow.Item("FishNumber") =
100
objRow.Item("AmountOfFeed") = 100
objRow.Item("FlowRate") = 100
objDataSet.Tables("A1").Rows.Add(objRow)
objDataAdapter.Update(objDataSet,
"A1")
End
Sub
============================================================================
신고
의견 쓰기
답변하시면 내공 10점을, 답변이 채택되면 내공 25점을 드립니다.
현재 답변들 1
등록순 | 최신순
re: VB 에서 Access에 테이블을 만들고 연결하는 방법좀 알려주세요 부탁드립니다.1. VB에서 모듈 하나 만든 다음에 아래 소스를 통째로 넣으세요.
Option Explicit
Public gDB As Database 'Oracle DB 연결 Database
Public gsConnect As String
'Oracle DB 연결 CONNECT STRING
Public gsErrMsg As String 'Error 메세지
Public
Ado_Conn As New ADODB.Connection
Public Sub DBConnect()
Dim ConStr As String
On Error GoTo ERROR_RTN
ConStr = "provider=Microsoft.jet.oledb.4.0;Data Source = " & App.Path & "\data\maya.mdb"
If Ado_Conn.State <> adStateClosed Then
Ado_Conn.Close
Ado_Conn.CursorLocation =
adUseClient
Ado_Conn.ConnectionString = ConStr
Ado_Conn.Open
MsgBox "접속
성공"
frmMain.Command3.Enabled = True
Exit Sub
ERROR_RTN:
MsgBox
Err.Description, , "DB 연결오류"
End Sub
'WorkSpace를 만든다
'Open 할 때 화일이 존재하지 않으면 만들어준다
Public Function
gfunOpenDB() As Boolean
On Error GoTo Err_Handler
Dim DBName As String
Screen.MousePointer = vbHourglass
DBName = App.Path & "\data\maya.MDB"
If Not (gDB Is Nothing) Then Set gDB = Nothing
'실제로 Workspace만드는 루틴
Set gDB = Workspaces(0).OpenDatabase(DBName, False,
False)
gfunOpenDB = True
Screen.MousePointer = vbDefault
Exit Function
Err_Handler:
'Err넘버가 3044(디렉토리가 존재안함)이면 MKDir
' 3024(MDB가 존재안함)이면
Create MDB
'아니면 Exit....
Select Case Err.Number
Case 3044
MkDir (App.Path & "\Data")
Case
3024
Case Else
Err.Clear
Screen.MousePointer = vbDefault
Exit
Function
End Select
'Create MDB
Set gDB = CreateDatabase(DBName, dbLangKorean)
'Create Table
Call gsubCreateTable
Err.Clear 'Error초기화
Resume
Screen.MousePointer = vbDefault
End Function
'Create Table
Private Sub gsubCreateTable()
Call gsubCreateTable_TagData
End Sub
'Create Table - TagData
Private Sub gsubCreateTable_TagData()
Dim tb As TableDef
Dim ndx(1) As Index
Dim i As Integer
'사용자 데이터 파일 생성
Set tb = gDB.CreateTableDef("TAGDATA")
With tb.Fields
.Append tb.CreateField("TAGNAME", dbText, 10)
.Append
tb.CreateField("TAGTYPE", dbText, 10)
.Append tb.CreateField("TAGVALUE",
dbLong)
End With
For i = 0 To 1
tb.Fields(i).Required =
False
tb.Fields(i).AllowZeroLength = True
Next i
gDB.TableDefs.Append tb '테이블 적용
For i = 0 To UBound(ndx, 1)
Set ndx(i) = tb.CreateIndex(CStr(i))
Next
i
ndx(0).Fields = "TAGNAME" 'index 필드명
ndx(1).Fields = "TAGTYPE" 'index
필드명
For i = 0 To UBound(ndx, 1)
tb.Indexes.Append ndx(i) '설정을 적용
Next
Set tb = Nothing
Screen.MousePointer = vbDefault
End Sub
2. 폼에 버튼을 세 개 만들고 아래와 같이 코딩 합니다.
Option Explicit
'MDB만들기
Private Sub Command1_Click()
Call gfunOpenDB
End Sub
'DB 접속하기
Private Sub Command2_Click()
DBConnect
End Sub
'데이터 test
Private Sub Command3_Click()
Dim Sql As String
Dim Ado_rs
As New ADODB.Recordset
Sql = " INSERT INTO TAGDATA (TAGNAME, TAGTYPE, TAGVALUE)" & vbCrLf
Sql
= Sql & " VALUES ('name_test','type_test',777)"
Ado_Conn.Execute Sql
Sql = " SELECT TAGNAME, TAGTYPE, TAGVALUE " & vbCrLf
Sql = Sql & "
FROM TAGDATA" & vbCrLf
Ado_rs.Open Sql, Ado_Conn
If Not Ado_rs.EOF Then
MsgBox Ado_rs(0) & ""
Else
MsgBox "No
Data"
End If
Ado_rs.Close
End Sub
간단한 예제 이지만 공부하는데 도움 되실겁니다.
수고하세요.