powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Редактирование данных в TDBGrid из связ.таблиц
23 сообщений из 23, страница 1 из 1
Редактирование данных в TDBGrid из связ.таблиц
    #34170925
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется TDBGrid, в которой основная информация вся из одной таблицы, а несколько колонок - из связ таблиц (просто как расшишровка отд полей). Редактирование строк произвожу в отдельно открывающемся окошке. И все равно запись в БД не производится
то же самое при отключенных в запросе дополнительных таблицах получается. Почему?
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34171262
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Редактируя данные на ячейках грида, лучше одну таблицу открывать.
И добавлять Look-up колонки.
Для TDBGrid Look-Up делается с использованием свойства ValueItems колонки.
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34174819
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не поняла.
А как такая конструкция пишется (ссылка на поле другой таблицы) и как войти в ValueItems колонки (я у себя не нашла)!
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34174901
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь придется запрограммировать массив Lookup.
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34174914
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34175160
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читала я все это и раньше но ничего не нашла!!
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34175254
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может здесь что то найдется:
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34175361
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, что-то похожее. Хотя у меня случай сложнее - связь через несколько таблиц.
Ну будем смотреть и думать!
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34175373
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P S
Вообще-то не подойдет. В моем варианте редактировать строку надо так и так в дочерней форме (слишком много столбцов в строке - 20-25, очень не наглядно редактировать! А расшифровка в TDBGrid несколких числовых полей (ссылки на классификаторы) и визуальная их замена на текстовые поля из классификатора - необходима...
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34175588
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А стоит ли столько (20-25) полей в ячейках грида редактировать?
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34175909
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffА стоит ли столько (20-25) полей в ячейках грида редактировать?

О чем и речь!
Вся эта куча у меня редактируется в открывающейся форме. А в списке на экран (вTDBGrid) выводится 5-6 колонок (остальные невидимы). Но из них пара-тройка - ссылки на другие таблицы (например, код поставщика - ссылка на список поставщиков и т п), но ОЧЕНЬ важны для пользователя и обязательно должны в списке отображаться, причем не коды, а значения, на которые происходит ссылка (название поставщика).
И как быть чтобы не особо изгаляться и в то же время красиво было
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34176667
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и что мешает для этих 5-6 колонок заполнить массивы ValueItems ?
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34178339
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу и что мешает для этих 5-6 колонок заполнить массивы ValueItems ?

В режиме GRID данные не должны редактироваться (только в дочерней форме), но в таблице колонки с наименованиями (поставщик, покупатель и т.д.) должны быть видны СРАЗУ взуально, без нажатия доп кнопок! Пользователи так привыкли из Clippera!

Все GRID'ы не допускают редактирования при выводе связ таблиц (я в TDBGRID не уперта, могу изменить).

А программу мне (на общественных началах) надо сделать в точности такую, как была старая досовская.

Для кого-то может смешная проблема, но мне очень важно!! Кто чем может помочь?
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34178578
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак не могу понять в чем проблема?
1) Открыть рекордсет с запросом и показать его в гриде.
2) Открыть форму редактирования одиночной записи с комбобоксами. Вернуть отредактированную запись назад в БД.
3) Обновить рекордсет (п. 1)

Что не получается-то ?
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34179031
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вообще запуталась с этими селектами!! В clippere все проще и понятнее!
Сейчас написала:
авторttt0 = "select * from GBPROV,RBPS Where " + _
"GBprov.Gkag=RBPS.Gkag and GBprov.Kkag=RBPS.Kkag Order by "
(хотя из RBPS мне нужно только поле Name), а Grid вообще колонку rbps.name выводит пустую, редактировать записи дает, но изменения при выходе из программы не сохраняет!!
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34179246
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nat-zЯ вообще запуталась с этими селектами!! В clippere все проще и понятнее!
Сейчас написала:
авторttt0 = "select * from GBPROV,RBPS Where " + _
"GBprov.Gkag=RBPS.Gkag and GBprov.Kkag=RBPS.Kkag Order by "
(хотя из RBPS мне нужно только поле Name), а Grid вообще колонку rbps.name выводит пустую, редактировать записи дает, но изменения при выходе из программы не сохраняет !!

По дефолту рекордсет открывается ReadOnly. Вам нужно AdOpenDynamic, AdLockOptimistic. И еще чтобы у гриды было AllowUpdate = True
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34180616
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shady По дефолту рекордсет открывается ReadOnly. Вам нужно AdOpenDynamic, AdLockOptimistic. И еще чтобы у гриды было AllowUpdate = True
Стоит все, и в гриде тоже:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
  Begin VB.Data Data1
     Caption         =   "Data1"
     Connect         =   "Access 2000;"
     DatabaseName    =   ""
     DefaultCursorType=    0   'DefaultCursor
     DefaultType     =    2   'UseODBC
     Exclusive       =    0    'False
     Height          =    345 
     Left            =    7800 
     Options         =    0 
     ReadOnly        =    0    'False
     RecordsetType   =    1   'Dynaset
     RecordSource    =   ""
     Top             =    6960 
     Visible         =    0    'False
     Width           =    2340 
  End
И чем отличается запрос:
Код: plaintext
1.
ttt0 = "select gbprov.*, rbps.naim from GBPROV,RBps WHERE " +  _
"GBprov.Gkag=RBPS.Gkag and GBprov.Kkag=RBPS.Kkag "
и
Код: plaintext
ttt0 = "select *from GBPROV " 
Во втором случае все ОК (кроме того что в гриде не высвечивается текстовая информация NAIM).
В первом случае rbps.naim тоже не высвечивается, корректировка gkag, kkag проходит норм а при выходе из грида и повторном входе - значенияне меняются. В DataField для Columns указывала и с "GBPROV." и без этого. SQL я совсем не понимаю... и он меня тоже
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34180867
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nat-z
И чем отличается запрос:
Код: plaintext
1.
ttt0 = "select gbprov.*, rbps.naim from GBPROV,RBps WHERE " +  _
"GBprov.Gkag=RBPS.Gkag and GBprov.Kkag=RBPS.Kkag "
и
Код: plaintext
ttt0 = "select *from GBPROV " 

Все просто. Во втором случае выборка идет из одной таблицы и естественно обновляется тоже одна. В первом случае запрос с джойном, т.е. выборка из двух таблиц обьеденяемых по условию. В этом случае обновление не прокатит.
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34181685
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВсе просто. Во втором случае выборка идет из одной таблицы и естественно обновляется тоже одна. В первом случае запрос с джойном, т.е. выборка из двух таблиц обьеденяемых по условию. В этом случае обновление не прокатит.
Так о чем первоначально и речь в топике!!! Выводить грид надо из двух таблиц (с текстовой расшифровкой), а к экр форме редактировать только одну (но в том числе и числ.поля, по которым идет обращение в остальные таблицы)!!!
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34181837
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shady По дефолту рекордсет открывается ReadOnly. Вам нужно AdOpenDynamic, AdLockOptimistic. И еще чтобы у гриды было AllowUpdate = True
А кстати как все это пишется буковками бейсика?
У меня в другом месте:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim cn1  As New ADODB.Connection
Dim rs1 As New ADODB.Recordset

cn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
    GBmenu.Pth0 + "\" + GBmenu.Xnamestat & ";Persist Security Info=False"
cn1.Open (GBmenu.Pth0 + "\" + GBmenu.Xnamestat)
......
rs1.Open "select * from [" & ttt0 & "]", cn1
И каку раз на запись в файл ругается!
А как правильно написать? (а то я VB себе купила не первую книгу, самого начала нет!!)
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34182002
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например
Код: plaintext
rstUserSession.Open "`TblUsers`", objADOSystemCnn, adOpenKeyset, adLockOptimistic
или
Код: plaintext
rstUserSession.Open "SELEC * FROM TblUsers", objADOSystemCnn, adOpenKeyset, adLockOptimistic
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34182814
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторrstUserSession.Open "`TblUsers`", objADOSystemCnn, adOpenKeyset, adLockOptimistic
rstUserSession.Open "SELEC * FROM TblUsers", objADOSystemCnn, adOpenKeyset, adLockOptimistic

Сегодня же попробую. Спасибо!! А то у меня дажекнижки толком нет - все методом тыка ищу или где-то по чужим примерам копаюсь!
...
Рейтинг: 0 / 0
Редактирование данных в TDBGrid из связ.таблиц
    #34183594
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще сразу по свежему вопрос. Почему я для dbf-файла при указании Recordsource в коде получаю ошибку? а когда убираю
Код: plaintext
Data1.RecordSource = ttt0 & "tabn"
- все ОК.
Т е предложение SQL с dBase не работает?

Код: plaintext
1.
2.
3.
4.
5.
Private Sub Form_Load()
ttt0 = "select * from ZPkart ORDER by "
Data1.DatabaseName = GBmenu.Pth0 + "\"   ' + "ZPkart.dbf"
Data1.RecordSource = ttt0 & "tabn"
Data1.Refresh
.....

И еще - уже по TDBGrid. Какое событие возникает при клике на заголовке столбца (мне надо пересортировывать данные по колонкам, хочу это сделать по клику на столбце).
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Редактирование данных в TDBGrid из связ.таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]