Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Access VBA

Автор: Guest
Дата сообщения: 05.09.2002 17:31




NB! Дублирующая тема VBA for Access закрыта во избежание путаницы. Оставлена эта, как более ранняя и имеющая больше сообщений.

Смежные темы:
По VBA: Excel и Word
Общие вопросы по самой программе: Access
Помощь в создании SQL-запросов: SQL запрос

----------
Как в Access перместить запись из одной таблицы в другую (допустим по нажатию кнопки на форме)?
Автор: Dust
Дата сообщения: 05.09.2002 22:20
Guest

Забавно - у тебя две таблицы с одинаковой структурой? Но тогда какой в них смысл???

Зделать то что ты хошь можно либо на SQL (тогда нужно вызывать запрос) либо Recordset-ом, тогда это будет модуль... Определись - что тебе нужно, и правильно ли ты задал вопрос?
Автор: SergejKa
Дата сообщения: 06.09.2002 03:15
Dust вероятно он имеет в виду одну запись переместить, а не скопировать полностью таблицу в идентичную.


Цитата:
Забавно - у тебя две таблицы с одинаковой структурой? Но тогда какой в них смысл???

Блин... Может у него база данных с жителями города-героя Волгодонска, в которой миллион записей и он делит по возрасту записи в идентичные таблицы... В одной таблице поиск по условию WHERE AGE<7 производится 30 минут, а если раскидать в разные таблицы (КИДСЫ-дети до 16, пэрэнтсы - до 50 лет и долгожители - больше 50) то можно искать сразу в таблице КИДСЫ и поиск будет занимать пять сек.

Ещё вопросы не по теме будут?
Автор: Guest
Дата сообщения: 06.09.2002 03:22
ДА у меня 2 таблицы с одной структурой и мне необходима переместить выбраную запись в другую таблицу(первая таблица -общая, а вторая типа архив или типа оборудование сдано в ремонт). Так вот кто сталкивался с такой ситуацией кинте код или на SQL или на BV.

Большое спасибо за ответы.
Автор: michael
Дата сообщения: 06.09.2002 05:14
Dim База As Database

Set База = CurrentDb
База.Execute "INSERT INTO Таблица2 SELECT * FROM Таблица1 WHERE id = " & Me![id] & ";"
База.Execute "DELETE FROM Таблица1 WHERE id = " & Me![id] & ";"
Автор: mhs
Дата сообщения: 23.12.2002 12:09
надеюсь правильно запостил..
штука вот в чем - допустим я рисую форму для заполнения базы и отдаю ее в работу, пока идет заполнение я рисую запросики и отчетики. и тут меня немного клинит - так как access фсе хранит в одном .mdb, то как лучче будет провести процедуру обновления на новый mdb, чтоб заполненные записи в таблице сохранились??
если есть возможность, то не через экспорт / импорт..
Автор: merlkerry
Дата сообщения: 23.12.2002 13:25

Цитата:
то как лучче будет провести процедуру обновления на новый mdb, чтоб заполненные записи в таблице сохранились


В принципе почти как стандарт стало разделение *.mdb на 2 файла - один только таблицы с данными - второй запросы, формы, отчеты и т.д. (интерфейс).

В твоем случае - рекомендую проделать то же самое, а потом из импортировать в файл с таблицыми данные из первоначальной версии ...
Автор: mhs
Дата сообщения: 24.12.2002 03:24
merlkerry

Цитата:
разделение *.mdb на 2 файла - один только таблицы с данными - второй запросы, формы, отчеты и т.д. (интерфейс).

ну это то что нужно, только подскажи plz как..
сервис - служебные программы - разделение баз это не оно?
у меня в итоге получилось 2 mdb...
Автор: Sufferer
Дата сообщения: 24.12.2002 05:31
Guest
А не проще сделать таблицу Ремонт, где хранить не записи а только индекс этой записи. Не пофиг-ли в какой таблице на самом деле информация хранится? Зачем усложнять-то?
Автор: merlkerry
Дата сообщения: 24.12.2002 10:24
mhs

Цитата:
сервис - служебные программы - разделение баз это не оно?
у меня в итоге получилось 2 mdb...
гдето так ...

Sufferer

Цитата:
Не пофиг-ли в какой таблице на самом деле информация хранится
На самом деле не пофиг - от пофигизма хороший софт не бывает
Автор: mhs
Дата сообщения: 25.12.2002 04:47
merlkerry
пасиб, тогда получилось
Автор: Advanced_Guest
Дата сообщения: 30.01.2003 19:51
Такой вопрос:

На форме есть выпадающий список берущий данные из таблицы.
В этот выпадающий список можно писать.

теперь вопрос:
Как сделать так, что если пользователь выбрал(или ввёл) уже добавленную строку, то ничего не происходило?
Если же добавил новую - то добавляет новую строку в таблицу.
При этом надо сделать без перезагрузки формы (выполняються другие функции)

Кто подскажет решение ?

Автор: Felix
Дата сообщения: 31.01.2003 09:39
Advanced_Guest я обрабатывал потерю фокуса... в процедуре делается поиск в таблице по столбцу, в котором данные для КомбоБокса. Соответственно, если результат нулевой, то добавляем данные в таблицу и обновляем её.


Добавлено
Код вобщем вот такой


Код:
Private Sub ПолеСоСписком3_GotFocus()
ПолеСоСписком3.Requery
End Sub

Private Sub ПолеСоСписком3_LostFocus()
Dim dbBase As Database
Dim dbTable As Recordset
Dim str As String

Set dbBase = DBEngine.Workspaces(0).Databases(0)
Set dbTable = dbBase.OpenRecordset("Таблица1")

str = ПолеСоСписком3.Text

dbTable.Index = "PrimaryKey"

dbTable.Seek "=", str
If dbTable.NoMatch Then
dbTable.AddNew
dbTable![Поле1] = str
dbTable.Update
End If
End Sub
Автор: Kashel
Дата сообщения: 31.01.2003 21:28
Подскажите, как заставить курсор автоматически устанавливаться в первую позицию поля при клике мышкой (в поле с маской ввода) как это происходит при переходе по TAB.
Автор: Advanced_Guest
Дата сообщения: 03.02.2003 00:13
Felix
не работает
сначала спотыкаеться на
> Dim dbBase As Database
(user-defined type not defined)
если коментирую строку, то на строке:

> if dbTable.NoMatch then
ошибка: member or datamember not found.


Но в Helpе к Access всё написанно так как ты сказал
В чём может быть ошибка ?
(У меня Access XP, VB6-7 не установлен.)


Kashel
Если нужно выделить весь текст в ячейке то вот код:


Код: Private Sub Text9_Click()
Text9.SelStart = 0
Text9.SelLength = Len(Text9.Text)
End Sub
Автор: Lucefer
Дата сообщения: 05.02.2003 17:38
Help!!! F1 !!! Как определить глобальную переменую до загрузки формы
Автор: Advanced_Guest
Дата сообщения: 05.02.2003 18:05
Lucefer
пиши в самом начале файла (1-2 строки, если надо можешь подвинуть.)
Главное до каких нибудь функций.

или пиши в Form_load (выполняеться при загрузке формы в оперативной памяти)
Автор: DmitrySD
Дата сообщения: 13.02.2003 14:16
Подскажите, где можно найти лит-ру по Access для "чаиника"
Автор: dneprcomp
Дата сообщения: 13.02.2003 21:47
Здесь:
http://forum.ru-board.com/topic.cgi?forum=35&topic=10769&start=560#lt
Автор: zxcvb
Дата сообщения: 01.03.2003 20:06
возможно ли узнать кто создавал на самом деле файл *мдб (аксесс)
я изменил имя создателя в(file..properties )
если да , то как изменить чтоб не узнали ?
умоляю , пожалуста срочно ответьте .
Автор: bobsON
Дата сообщения: 05.03.2003 22:53
Запрос на добавление

Код: INSERT INTO таблица ( поле )
SELECT [поле запроса]
FROM запрос;
Автор: Advanced_Guest
Дата сообщения: 05.03.2003 23:16
bobsON

попробуй:

limit 1
или
where id='номер'
Автор: vamp
Дата сообщения: 19.03.2003 13:03
Привет!
подскажите плз как при добавлении записей в таблицу с помощью запроса,
сделать так, чтобы если запись с таким кодом уже существует
то обновить ее, если нет то добавить строку.
Автор: Felix
Дата сообщения: 20.03.2003 12:08
vamp проще написать на VB: есть функция Seek, которая ищет по указанному индексу интересующую(ие) запись/записи.
Делается обыкновенный условный оператор, где проверяется наличие результата поиска и если запись существует, то этому полю присваиваешь значение, а если нет, то добавляешь.
А вот с запросом поинтереснее, может я ошибусь, но в голову конструкция с UPDATE и INSERT одновременно не приходит...
Автор: Tishka
Дата сообщения: 20.03.2003 15:42
INSERT INTO TABLE1
(FIELD1, FIELD2, FIELD3, FIELD4 ... FIELDN)
SELECT FIELD1, FIELD2, FIELD3, FIELD4 ... FIELDN
FROM TABLE2
WHERE NOT FIELD1 IN (SELECT FIELD1 FROM TABLE1)

FIELD1 - предположительно, PRIMARY KEY.

Если добавлять нужно не все записи, то после WHERE добавить
AND FIELD1 = 12
или
AND FIELD1 BETWEEN 10 AND 15.
Автор: griin
Дата сообщения: 21.07.2003 08:29
Есть таблица, в ней поле с записями типа:
1
2
3
4
11
22
33
44

надо напсать два запроса один строгий:

"select * from table where pole="1""

второй не строгий:

"select * from table where pole like "*1*"",

так вот как сделать так, чтобы второй запрос НЕ выбрал те записи, которые выбрал первый запрос? Я делал так:

"select * from table where pole like "*1*" and not exists (select * from table where pole="1")",

но это не работает, второй запрос вообще ничего не выбирает:(( Где грабли, что делаю не так?..
Автор: michael
Дата сообщения: 22.07.2003 03:14
griin


Код:
select * from table where pole like "*1*" and pole <> "1";
Автор: Uska
Дата сообщения: 05.08.2003 23:20
Подскажите плз. Нужно сохранить отчёт но если сохранять в виде RichText то не сохраняются линии, если SnapShot то нельзя редактировать, html тоже не подходит.
Как сохранить и текст и линии и чтоб редактировался ?
Автор: Individ84
Дата сообщения: 08.08.2003 11:04
Народ... подскажите как с помощью SQL в Access сделать связь многие ко многим???
Автор: MrZeRo
Дата сообщения: 08.08.2003 14:56
Uska
Это мечта каждого разработчика - корректный экспорт отчетов в разные форматы для последующего редактирования. К сожалению, я не видел ни одного генератора отчетов, который бы полностью корректно в этим справлялся. (разве что экспорт в .bmp /типа шутка /)

Individ84
Так же, как и в любой другой СУБД, ничего специфичного. Не будет ли лишним напомнить, что из двух таблиц такая связь не реализуется?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

Предыдущая тема: BDE - траблы, помогите пожалуйста срочно...


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.