Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: выборочный перенос данных из Excel в Acess
 
 автор: nika   (06.10.2006 в 12:53)   личное сообщение
 
 

Люди помогите,
есть excel таблица нужно из неё выбрать оределённые поля и внести их в accessтаблицу.
Например из „Excel.xls“ поля D2-G5 в „Accessdaten.db“ солбец „имя“. (посредством VBA)

  Ответить  
 
 автор: Ирча   (06.10.2006 в 13:29)   личное сообщение
 
 

открыть книгу, скопировать данные в переменную, занести в базу Рекордсет - запрос на добавление....

  Ответить  
 
 автор: nika   (08.10.2006 в 20:04)   личное сообщение
 
 

Привет Ирча спасибо за ответ честно признаюсь поняла не всё потому что не сталкивалась с VBA есть небольшой опыт с SQL к тому же учу информатику на немецком поэтому например несовсем ястно что значит „открыть книгу“.
В общем история такая моему шефу на фирме где я делаю практику приспичило cделать двухсторонний датентрансфер из ненормированной Excelтаблици в AccessДБ посредством VBA. Может подскажешь как в VBA открыть таблицу и какие функции, как можно взять содержимое определённой ячейки и занести данные в ДБ.
Спасибо заранее Ника.

  Ответить  
 
 автор: amba-l   (06.10.2006 в 13:51)   личное сообщение
 
 

создать связанную тбл, и запрос на добавление

  Ответить  
 
 автор: amba-l   (09.10.2006 в 20:57)   личное сообщение
 
 


DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "tbl1", "c:\Excel.xls", False, "d2:g5"

Этот метод не подойдет?

  Ответить  
 
 автор: nika   (10.10.2006 в 16:25)   личное сообщение
 
 

Привет спасибо за предложенное решение Пока не пробовала но всё равно спасибо. Я тут кое что другое нарыла. Почемуто не работает хотя ошибок не даёт.

Public Sub GetFromExcel()
On Error GoTo er
Dim cmd As ADODB.Command
Dim obj As Object
Dim st As Variant
Dim curGrp As String
Dim i As Long
Dim rst As ADODB.Recordset
Set cmd = New ADODB.Command
'Tabelle löschen
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = "DROP TABLE probe"
cmd.CommandType = adCmdText
cmd.Execute 'Tabelle neu erzeugen
cmd.CommandText = "CREATE TABLE probe (Id int,Name nvarchar(255),Nummer int, Zeichen nvarchar(255))"
cmd.Execute
Set cmd = Nothing 'Zeiger auf Null setzen (zeigt nicht mehr auf ein Objekt)
Set rst = New ADODB.Recordset 'Recordset Objekt erzeugen
rst.Open "SELECT * FROM probe", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic
'Tabelle fuhlen
Set obj = GetObject("H:\excel_probe1.xls") 'Pfad zu excel Tabelle
i = 2
'st = obj.ActiveSheet.Range("a" & i & ":a" & i) curGrp = vbNullString
Do While st <> vbNullString
rst.AddNew
'If st Like "?*" Then
'If st <> curGrp Then
'curGrp = st
'End If
'i = i + 1
st = obj.ActiveSheet.Range("a" & i & ":a" & i)
If st = vbNullString Then Exit Do
'End If
'rst![NGroup] = curGrp
rst![Name] = st
rst![Nummer] = CLng(obj.ActiveSheet.Range("b" & i & ":b" & i))
rst![Zeichen] = CLng(obj.ActiveSheet.Range("c" & i & ":c" & i))
rst.Update
i = i + 1
'st = obj.ActiveSheet.Range("a" & i & ":a" & i)
Loop
Set obj = Nothing
rst.Close
Set rst = Nothing
Exit Sub
er:

Select Case Err.Number
Case -2147217865
Resume Next
Case Else
MsgBox Err.Number & vbCrLf & Err.Description
End Select
End Sub

  Ответить  
 
 автор: nika   (10.10.2006 в 16:25)   личное сообщение
 
 

End

  Ответить  
 
 автор: ДрЮня   (10.10.2006 в 16:35)   личное сообщение
 
 

если имя эксель файла известно и если известен диапазон ячеек, то проще (и, наверное, правильнее) это делать из аксеса

  Ответить  
 
 автор: georgelisovsky   (11.10.2006 в 13:16)   личное сообщение
 
 

Есть такая замечательная вещь - OLE.Automation
Dim XL As Object
Dim XLBook As Object
Dim XLSheet As Object
XL=CreateObject("Excel.Application")
XLBook=XL.Workbooks.Open(Полное имя книги Эксель в кавычках)
XLSheet=XLBook.Worksheets(Имя или номер листа)
далее используем XLSheet.Cells(НомерСтроки,НомерСтолбца).Value для чтения значений из ячеек.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList