Imam jedan problem, hmmm, koji sam pokusavao rjesiti, ali ne ide:) pa kontam, ima strucnjaka ovdje, njima je to lako.
Naime, problem je sljedeci:
Imam u Excelu tabelu sa podacima o nekim mjerenjima koja radim, znaci dimenzije, sirina, visina, zapremina itd.
E sada, imam tabelu u Accessu kod koje su nazivi polja isti kao i kod tabele u MS Excelu, s tima da u Accessu imam i primary key (autonumber), dok tog polja u Excelu nema.
Znaci raspored je:
Tabela Excel
Opis Duzina Sirina Povrsina Visina Zapremina
Tabela Access
ID Opis Duzina Sirina Povrsina Visina Zapremina
Da li je moguce napraviti macro naredbu i "priljepiti" je na dugme u excelu, koja kada bi se izvrsila, podaci iz excela bi se "zaljepili" u access tabelu?
Pretpostavljam uz pomoc ADO/DAO ali kako-ideje nemam. Pokusavao sam na ovaj nacin:
Code:
Sub Export_mjerenja()
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stDB As String
Dim stCon As String
Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset
stDB = "C:\mjerenja.mdb"
stCon = "Provider=Microsoft.Ace.OLEDB.12.0; Persist Security Info = False;" & _
"Data Source=" & stDB & ";"
cnt.Open stCon
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
With rst
.Index = "PrimaryKey"
.CursorLocation = adUseServer
.Open "tbl_mjerenje", cnt, 1, 3, adCmdTableDirect
.Seek Range("CaseNum").Value
If Not rst.EOF Then
.Fields("opis") = Sheets("mjerenja").Range("b9").Value
.Fields("duzina") = Sheets("mjerenja").Range("b11").Value
If Sheets("mjerenja").Range("k2") = "p" Then
.Fields("sirina") = Sheets("mjerenja").Range("b12").Value
End If
.Fields("povrsina") = Sheets("mjerenja").Range("b13").Value
.Fields("visina") = Sheets("mjerenja").Range("b14").Value
.Fields("zapremina") = Sheets("mjerenja").Range("b15").Value
.Update
Else
MsgBox "Nije uspjelo"
End If
End With
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
rst.Close
cnt.Close
Set cnt = Nothing
Set rst = Nothing
End Sub
Sub Export_mjerenja()
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stDB As String
Dim stCon As String
Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset
stDB = "C:\mjerenja.mdb"
stCon = "Provider=Microsoft.Ace.OLEDB.12.0; Persist Security Info = False;" & _
"Data Source=" & stDB & ";"
cnt.Open stCon
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
With rst
.Index = "PrimaryKey"
.CursorLocation = adUseServer
.Open "tbl_mjerenje", cnt, 1, 3, adCmdTableDirect
.Seek Range("CaseNum").Value
If Not rst.EOF Then
.Fields("opis") = Sheets("mjerenja").Range("b9").Value
.Fields("duzina") = Sheets("mjerenja").Range("b11").Value
If Sheets("mjerenja").Range("k2") = "p" Then
.Fields("sirina") = Sheets("mjerenja").Range("b12").Value
End If
.Fields("povrsina") = Sheets("mjerenja").Range("b13").Value
.Fields("visina") = Sheets("mjerenja").Range("b14").Value
.Fields("zapremina") = Sheets("mjerenja").Range("b15").Value
.Update
Else
MsgBox "Nije uspjelo"
End If
End With
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
rst.Close
cnt.Close
Set cnt = Nothing
Set rst = Nothing
End Sub
NEmam pojma sta cu i kud cu :))... Ne radi
Neka ideja!
Hvala svima unaprijed
SANELDESIGN - http://saneldesign.com