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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Связь таблиц
 
 автор: Alex   (01.08.2006 в 00:00)
 
 

У меня имеется таблица (Excel) вида:

ГРУППА1
Наименование1 Цена К-во
Наименование2 Цена К-во
Наименование3 Цена К-во
ГРУППА2
Наименование4 Цена К-во
Наименование5 Цена К-во
Наименование6 Цена К-во
и т.д.

Как сделать связанную (или через импорт) таблицу в Access вида:

ГРУППА1 Наименование1 Цена К-во
ГРУППА1 Наименование2 Цена К-во
ГРУППА1 Наименование3 Цена К-во
ГРУППА2 Наименование4 Цена К-во
ГРУППА2 Наименование5 Цена К-во
ГРУППА2 Наименование6 Цена К-во

???

Мне не важно будет ли это две связанные таблицы (группы и товары) или одна таблица Товары с текстовым полем Группа.
Каждый раз вручную править таблицу в Excel-е не очень хочется.
Если кто может помочь - заранее благодарен!

  Ответить  
 
 автор: ??????   (01.08.2006 в 00:00)
 
 

Re: Связь таблиц Немного непонятна задача. Это надо сделать разово, а потом вести это дело в access или все изменения должны отображаться и в Excel?

  Ответить  
 
 автор: Alex   (02.08.2006 в 00:00)
 
 

Re[1]: Связь таблиц Нет, не разово. Рассказываю с самого начала... У нас компьютерная фирма, учет ведется в 1С. Нужно сделать "считалку" (приблуда которая позволяет расчитывать стоимость конфигурации). Для считалки, понятно, нужно иметь список комплектующих с ценами и количествами, т.е. из 1С я делаю экспорт в справочника товаров в екселевский файл, изменить форму отчета я не могу и никто в нашей конторе тоже не может, т.е. только то что есть (см.выше).

  Ответить  
 
 автор: ??????   (02.08.2006 в 00:00)
 
 

Re[1]: Связь таблиц Vba Вам в руки :)

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
удалим таблицу
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = "DROP TABLE FromExcel"
cmd.CommandType = adCmdText
cmd.Execute
создадим её заново
cmd.CommandText = "CREATE TABLE FromExcel (NGroup nvarchar(50),Naim nvarchar(255),Price double, Kolvo int)"
cmd.Execute
Set cmd = Nothing
Set rst = New ADODB.Recordset
rst.Open "SELECT * FROM FromExcel", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic
начнём заполнять таблицу
Set obj = GetObject("c: 1.xls") место, где лежит файл
i = 1
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![Naim] = st
rst![Price] = CDbl(obj.ActiveSheet.Range("b" & i & ":b" & i))
rst![Kolvo] = 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

  Ответить  
 
 автор: Alex   (02.08.2006 в 00:00)
 
 

Re[1]: Связь таблиц Спасибо!
Попробую разобраться

  Ответить  
 
 автор: Alex   (02.08.2006 в 00:00)
 
 

В принципе код работает, но... в результате я получаю таблицу FromExcel опять же вида:

Группа1 0 0
Наименование1 #.00 #
Наименование2 #.00 #
Наименование3 #.00 #
Группа2 0 0
Наименование4 #.00 #
Наименование5 #.00 #
Наименование6 #.00 #

и т.д. (поле NGroup остается пустым), а мне то надо:

Группа1 Наименование1 #.00 #
Группа1 Наименование2 #.00 #
Группа1 Наименование3 #.00 #
Группа2 Наименование4 #.00 #
Группа2 Наименование5 #.00 #
Группа2 Наименование6 #.00 #

  Ответить  
 
 автор: ??????   (02.08.2006 в 00:00)
 
 

Re: В принципе код работает, но... Посмотрите ссылки на ячейки. У меня же нет Вашего Excel-файла. Можно, конечно, выслать его на leo_nid77@mail.ru

  Ответить  
 
 автор: Alex   (02.08.2006 в 00:00)
 
 

Re[1]: В принципе код работает, но... Если Вас это не затруднит!
Посмотрите пожалуйста!
Буду очень признателен!
Отправил на mail ексельный файлик: Price.zip

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