С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/30: Рейтинг темы: голосов - 30, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 29
1

Access VBA Копирование данных таблиц

27.02.2014, 13:45. Показов 5618. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток!
У меня проблема, не могу найти нужную информацию в интернете.
-
У меня есть 2 Таблицы = Товар и Продано (одинаковые структуры)
Поля: Артикул Название Кол-во Цена

А в форме когда нажимаю на кнопку, ПРОДАТЬ что бы 1 ед товара попадала в таблицу Продано,
Но не могу найти похожие примеры для копирования 1 ед товара в другую таблицу.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2014, 13:45
Ответы с готовыми решениями:

Копирование в Access VBA
Проблема вот в чём: Есть форма(пусть будет Form1) и подчинённая форма в виде таблицы (Form2)....

Копирование Listbox в VBA 7.1 (ms access)
Здравствуйте! Есть база данных (табличка) в ms access 13. Загружаю данные в список (листбокс) на...

Как заполнить базу данных Access с помощью vba в том же access и считать из нее инфу?
Прошу помочь в азах. Как заполнить базу данных Access с помощью vba в том же access и считать из...

Копирование данных из нескольких таблиц в одну
Доброго времени суток. Передо мной стоит задача: есть книга, в которой содержится N-ное количество...

23
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
27.02.2014, 15:17 2
Надо связать обе таблицы по одному ключу, у вас это Артикул или Название.
На событие кнопки надо записать запрос на обновление таблиц или на добавление, если такого артикула нет в т. Продано.
1
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 29
27.02.2014, 17:06  [ТС] 3
Rube Не хочет, забивать данные в другую таблицу всеравно))
сделал связь, даже по экспериментировал, не получается
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
27.02.2014, 17:31 4
БД прикрепи, глянем.
1
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 29
27.02.2014, 19:31  [ТС] 5
Вот база
Вложения
Тип файла: rar db1.rar (16.3 Кб, 19 просмотров)
0
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 29
27.02.2014, 19:48  [ТС] 6
Rube, может с помощью запроса что нибудь?
но всеравно нужно что что бы при нажатии на кнопку, они отправлялись в продано,
я уж весь мозг вынес))
что сделать для переноса 1 ед. товара в другую таблицу))
- прошу прощение за форму, я столько сегодня за день на редактировал))
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
27.02.2014, 19:50 7
Код (счетчик) должен быть только в т. Товар, в т.Продано сделай Код с типом - числовой, индекс - совпадения допускаются, ключ убери. Поле артикул1 не нужно, т.к. оно уже есть в т. Товар.
В схеме данных связуй т.Товар --> т.Продано по Код.
В событие кнопки:
Visual Basic
1
2
    sq = "INSERT INTO [Продано] (Код, Название) VALUES('" & Me.Код & "','" & Me.Название & "')"
    CurrentDb.Execute sq
Цену и другие поля добавить в sq не забудь.
1
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 29
28.02.2014, 00:06  [ТС] 8
Rube Спасибо, помогло, но не до конца, когда начинаю развивать чтото добавлять пишет: Compile error: Method or data member not found.
А когда нажимаю ок он выделяет мне одну из строк, в данном случаи ссылается
и выделяет: .Заметки

sq = "INSERT INTO [Продано] (Код, Название, Цена, Количество, Заметки, Артикул, Штрих, Штрихх) VALUES('" & Me.Код & "', '" & Me.Название & "' , '" & Me.Цена & "' , '" & Me.Количество & "' , '" & Me.Заметки & "' , '" & Me.Артикул & "' , '" & Me.Штрих & "' , '" & Me.Штрихх & "' )"
CurrentDb.Execute sq
0
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 29
28.02.2014, 00:19  [ТС] 9
Вот база
Вложения
Тип файла: rar db1.rar (40.1 Кб, 16 просмотров)
0
Модератор
Эксперт MS Access
12096 / 4956 / 791
Регистрация: 07.08.2010
Сообщений: 14,566
Записей в блоге: 4
28.02.2014, 08:06 10
Лучший ответ Сообщение было отмечено CraSTI как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Private Sub Кнопка18_Click()
Dim sq
sq = "INSERT INTO [Продано] (Код, Название, Цена, Количество, Заметки, Артикул, Штрих, Штрихх)"
'''''''''''''''''''''имя контрола через восклицательный знак''''''''''''''''''''''''''''''''''
'''''''''''''и непонятно почему код не счетчик и все вводится в символьном виде
sq = sq & " VALUES('" & Me.Код
sq = sq & "', '" & Me!Название
sq = sq & "' , '" & Me!Цена
sq = sq & "' , '" & Me!Количество
sq = sq & "' , '" & Me!Заметки
sq = sq & "' , '" & Me!Артикул
sq = sq & "' , '" & Me!Штрих
sq = sq & "' , '" & Me!Штрихх
sq = sq & "' )"
 CurrentDb.QueryDefs("wrem").SQL = sq
 
    CurrentDb.Execute sq
'''''''''''''''''''''''''''''''''''''
''поля -3
''пытаетесь вставить 8 значений
''sq = "INSERT INTO [Продано] (Артикул, Штрих, Штрихх)"
''sq = sq & " VALUES('" & Me!Код
''sq = sq & "', '" & Me!Название
''sq = sq & "' , '" & Me!Цена
''sq = sq & "' , '" & Me!Количество
''sq = sq & "' , '" & Me!Заметки
''sq = sq & "' , '" & Me!Артикул
''sq = sq & "' , '" & Me!Штрих
''sq = sq & "' , '" & Me!Штрихх
''sq = sq & "' )"
''   Debug.Print sq
''    CurrentDb.QueryDefs("wrem").SQL = sq
''
''    CurrentDb.Execute sq
End Sub
1
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
28.02.2014, 08:46 11
CraSTI, внимательно вставляйте в запрос имена из формы, Артикул и Штрихх это данные контрола, а не имена.
1
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 29
28.02.2014, 10:16  [ТС] 12
Rube ) Что-то я видимо очень далек) обычный VB гораздо проще, в том числе и в экселе ))
А что такое "Это данные контрола, а не имена"- Я понимаю что есть Label название ) которые идет в форме )
Есть поля TextBox в которых данные из таблиц и их полей)

Но что такое контрол, не понимаю. Я делал до этого по аналогии к коду, который был выше указанный.
Тупо брал подписывал и смотрел результат, а когда перестало работать, не понял почему)
0
Модератор
Эксперт MS Access
12096 / 4956 / 791
Регистрация: 07.08.2010
Сообщений: 14,566
Записей в блоге: 4
28.02.2014, 10:43 13
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Кнопка19_Click()
 
''программа -вспомогач для анализа полей
''тест соответствия названий и полей
Dim cnt As Control
Debug.Print "имя контрола", "|"; "имя поля в таблице/запросе|prim"
 
For Each cnt In Me.Controls
If cnt.ControlType = acTextBox Then
Debug.Print cnt.Name, "|"; cnt.ControlSource; "|"; cnt.Name = cnt.ControlSource
End If
 
Next cnt
 
End Sub
'имя контрола имя поля в таблице/запросеprim
'Код КодTrue
'Штрих ШтрихTrue
'Штрих2 ШтриххFalse
'Артикул 1 АртикулFalse
'Название НазваниеTrue
'Цена ЦенаTrue
'Количество КоличествоTrue
'Заметки ЗаметкиTrue
1
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 29
28.02.2014, 10:50  [ТС] 14
shanemac51 Теперь понял, спасибо.
Кстати в прошлом коде пришлось убрать " CurrentDb.QueryDefs("wrem").SQL = sq " для того что бы заработала кнопка
0
Модератор
Эксперт MS Access
12096 / 4956 / 791
Регистрация: 07.08.2010
Сообщений: 14,566
Записей в блоге: 4
28.02.2014, 10:57 15
иногда вывожу справку всех имен на форме
имя контрола имя поля в таблице/зепросенадписиprim2
Надпись16  Товар2 
Кнопка19   1 7200 113  
Код Код True
Код_Надпись  Код 
Штрих Штрих True
Штрих_Надпись  Штрих 
Штрих2 Штрихх False
Штрих2_Надпись  Штрихх 
Артикул 1 Артикул False
Артикул 1_Надпись  Артикул 
Название Название True
Название_Надпись  Название 
Цена Цена True
Цена_Надпись  Цена 
Количество Количество True
Количество_Надпись  Количество 
Заметки Заметки True
Заметки_Надпись  Заметки 
Кнопка17   0 170 5329  
Кнопка18   0 2097 5329  

Добавлено через 3 минуты
строку CurrentDb.QueryDefs("wrem").SQL = sq вставляю при отладке
в любой базе у меня есть запрос wrem
в него я заношу текст динамического запроса, если не ясна ошибка
затем вызываю запрос на выполнение и аксесс показывает место ошибки
=========
достаточно часто помогает
0
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 29
28.02.2014, 11:11  [ТС] 16
shanemac51 , Я создал кнопку прикрутил код для дебага, как экспортировать отчет в эксель?
Я когда нажимаю на кнопку дебага в форме появляется в левом верхнем углу квадратик и пунктиров(как от выделения объекта при его нажатии)
0
Модератор
Эксперт MS Access
12096 / 4956 / 791
Регистрация: 07.08.2010
Сообщений: 14,566
Записей в блоге: 4
28.02.2014, 11:44 17
я в вашей db1 не вижу отчетов
0
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 29
28.02.2014, 11:51  [ТС] 18
shanemac51, Я его создал, в создал отдельную форму под дебаг даже для удобства что бы не путаться, вбил код в кнопку.
Visual Basic
1
2
3
4
5
6
7
8
Dim cnt As Control
Debug.Print "имя контрола", "|"; "имя поля в таблице/запросе|prim"
 For Each cnt In Me.Controls
If cnt.ControlType = acTextBox Then
Debug.Print cnt.Name, "|"; cnt.ControlSource; "|"; cnt.Name = cnt.ControlSource
End If
 Next cnt
 End Sub
ничего не меняется.) ( чувствую себя дураком )
Посмотрел в коде нет никаких переменных которые обращаются к определенному отчету, они должны наверное как то формироваться.
Даже извратился создал отчет, а в нем кнопку, нажимаю и то же не работает))
Вложения
Тип файла: rar db1.rar (49.3 Кб, 6 просмотров)
0
Модератор
Эксперт MS Access
12096 / 4956 / 791
Регистрация: 07.08.2010
Сообщений: 14,566
Записей в блоге: 4
28.02.2014, 12:02 19
это только справка по контролам, выводится в окно отладки
в виде
имя контрола |имя поля в таблице/запросе|prim
Код |Код|True
Штрих |Штрих|True
Штрих2 |Штрихх|False
Артикул 1 |Артикул|False
Название |Название|True
Цена |Цена|True
Количество |Количество|True
Заметки |Заметки|True

просто я его вставила в форум таблицей

есть ли у вас скайп
0
Модератор
Эксперт MS Access
12096 / 4956 / 791
Регистрация: 07.08.2010
Сообщений: 14,566
Записей в блоге: 4
28.02.2014, 12:13 20
мини доработка

для корректироват
--правая мыша
--конструктор
Вложения
Тип файла: zip db1-1157.zip (35.7 Кб, 26 просмотров)
0
28.02.2014, 12:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2014, 12:13
Помогаю со студенческими работами здесь

Загрузка данных из Excel в базу данных Access на VBA
Буду очень рад если кто-нибудь приведет более менее понятный код, как можно это реализовать...

Копирование таблиц в Access
Уважаемые "Шаманы"! Возник справедливый вопрос... в приложении имеется пример. форма "члены...

VBA Access: Адреса связанных таблиц
Добрый день! Подскажите, в базе Аксесс 2003 есть несколько связанных таблиц, как средствами VBA: ...

Импорт таблиц из Excel в Access средствами VBA
Здравствуйте еще раз, продолжаю разбираться с MS Access и VBA. И появился еще один вопрос. Я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru