powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / MSFlexGrid и БД
29 сообщений из 29, показаны все 2 страниц
MSFlexGrid и БД
    #34675779
jora-objora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как реализовать внесение данных через FlexGrid в БД если сначала данные из БД заносились в FlexGrid ?
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34675854
Фотография gjghjc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему никак, попробуй использовать Microsoft DataGrid Control (MSDATAGRD.OCX)
С уважением, Николай.
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34677094
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я для этого на месте редактируемой ячейки подставлял textbox, придавая ему соответствующие размеры, и копировал в него значение из текущей ячейки. Потом, по нажатию Enter или LostFocus данные заносил в FlexGrid и обновлял рекордсет. Если что - могу пример закинуть.
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34677100
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ: А ДатаГрид у тебя попрет только если АДО пользуешь. Если ДАО, то даже не парься.
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34678489
jora-objora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IguMEN, буду очень вам благодарен если закинете пример
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34680070
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, потерял.

Добавь на форму невидимый текстбокс, скажем, text1. При даблклике на flexgrid1 (пусть, flex1) пишешь следующее:

text1.left=flex1.left+flex1.colpos (flex1.col)
text1.top=flex1.top+flex1.rowpos (flex1.row)
text1.width=flex1.colwidth(flex1.col)
text1.height=flex1.rowheight(flex1.row)
text1.text=flex1.textmatrix (flex1.row, flex1.col)
text1.visible=true

Бэкколор текстбокса можно сделать нежно голубым или желтым (шоб эффектнее було)

А следующий код пихаешь в лостфокус у текстбокса и в кейдаун текстбокса ( но только при условии, что кейкод=13)

flex1.textmatrix(flex1.row, flex1.col)=text1.text
text1.visible=false

А обновление в рекордсете - в зависимости от контрола.
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34680339
jora-objora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IguMEN
flex1.textmatrix(flex1.row, flex1.col)=text1.text

при этом информация будет заноситься в flex или и в flex и БД ? мне надо второе
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34680618
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во flex. Я ж написал: дальше - в зависимости от контрола.
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34680828
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче схема такая:
1) Ищецца в рекордсете запись, соответствующая нужной строке. (Надеюсь в таблице предусмотрено поле с неповторяющимися значениями?)
2) Если DAO, то Data1.recordset.edit (Для ADO ентого не надо)
3) data1.recordset.fields(flex1.col).value=text1.text (хотя, на самом деле вместо flex1.col надо ввести переменную, в которую пихается при начале редактирования значение flex1.col. Дело в том, что lostfocus у text1 может означать клик по сетке в произвольном месте, а равно смену текущего столбца.
3) data1.recordset.update

Вот и все.

Финал:

Код: plaintext
1.
Adodc1.recordset.fields(a).value=textext1.text
adodc1.recordset.update

Аналогично - для Data1 (с добавлением Data1.recordset.edit в начале)
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34680846
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ: Если все-таки поля, подходящего для поиска нет, то придется сделать так

Код: plaintext
1.
data1(либо adodc1).recordset.movefirst
data1(либо adodc1).recordset.move CurRow- 1  '-CurRow - Записанное заранее значение flex1.row
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34680864
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЗЫ: Кстати, если уж на то пошло, то и в строке flex1.textmatrix(flex1.row, flex1.col)=text1.text
надо flex1.row и flex1.col заменить на заранее введенные переменные с установленными значениями
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34681106
jora-objora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мать моя женщина, ну и ужос, вроде сделал все как написано, выдает ошибку в выделенной строке

автор
Private Sub Flex1_DblClick()
Text1.Left = Flex1.Left + Flex1.ColPos(Flex1.Col)
Text1.Top = Flex1.Top + Flex1.RowPos(Flex1.Row)
Text1.Width = Flex1.ColWidth(Flex1.Col)
Text1.Height = Flex1.RowHeight(Flex1.Row)
Text1.Text = Flex1.TextMatrix(Flex1.Row, Flex1.Col)
Text1.Visible = True
Flex1.Refresh
Text1.SetFocus
End Sub

Private Sub Text1_LostFocus()
a = Flex1.Col
b = Flex1.Row
Data1.Recordset.Edit
Flex1.TextMatrix(b, a) = Text1.Text
Data1.Recordset.Fields(a).Value = Text1.Text
Data1.Recordset.Update
Text1.Visible = False
Flex1.Refresh
End Sub


ЗЫ вкратце обьясните смысл рекордсета, что оно из себя представляет
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34681143
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) a и b обозначай до при появлении текстбокса, а объяви их в декларе
2) флекс рефрешить не надо
3) упущен поиск записи в рекордсете. Если ткунул в сетку - это еще не значит нашел. Читай мои последние посты.
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34681154
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ: рекордсет - набор записей из таблицы, получаемый после указания рекордсорса и рефреша DAO или иных дата-контролов
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34681412
jora-objora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IguMEN
1) a и b обозначай до при появлении текстбокса, а объяви их в декларе
2) флекс рефрешить не надо
3) упущен поиск записи в рекордсете. Если ткунул в сетку - это еще не значит нашел. Читай мои последние посты.
1) а можно пападробнее? )) что такое деклер?
3) это оно?
авторData1.Recordset.MoveFirst
Data1.Recordset.Move b - 1
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34681673
jora-objora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗЫ что бы не создавать новые темы, тут спрошу.
есть текст
авторText1.Left = Flex1.CellLeft + Flex1.Left
почему при Flex1.CellLeft=15 и Flex1.Left=100 Text1.Left равняется 115,38 ??
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34682209
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Declare - место в самом верху кода, где объявляются Апишные функции и переменные.
3) именно оно
4) не cellleft, а colpos(b) - это важно
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34682213
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перепутал: не b, а "a"
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34682398
jora-objora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1)ошибка возникает там же грит "Field cant be updated"
авторPrivate Sub Text1_LostFocus()
a = Flex1.Col
b = Flex1.Row
Data1.Recordset.MoveFirst
Data1.Recordset.Move b - 1
Data1.Recordset.Edit
Flex1.TextMatrix(b, a) = Text1.Text
Data1.Recordset.Fields(a).Value = Text1.Text
Data1.Recordset.Update
Text1.Visible = False
End Sub
2) таже фигня (
авторText1.Left = Flex1.ColPos(a) + Flex1.Left
Flex1.ColPos(a) = 960
Flex1.Left = 300
Text1.Left = 1259.38 ???
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34682572
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) "a" & "b" должны определяться в тот момент, когда text1 становится видимым, потому что в lostfocus это уже другие координаты.
2) не парься
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34682610
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, я запустил вот это и у меня все работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public a As Integer, b As Integer

Private Sub Flex1_DblClick()
Text1.Left = Flex1.Left + Flex1.ColPos(Flex1.Col)
Text1.Top = Flex1.Top + Flex1.RowPos(Flex1.Row)
Text1.Width = Flex1.ColWidth(Flex1.Col)
Text1.Height = Flex1.RowHeight(Flex1.Row)
Text1.Text = Flex1.TextMatrix(Flex1.Row, Flex1.Col)
Text1.Visible = True
a = Flex1.Col
b = Flex1.Row
Text1.SetFocus
End Sub

Private Sub Text1_LostFocus()
Data1.Recordset.Edit
Flex1.TextMatrix(b, a) = Text1.Text
Data1.Recordset.Fields(a).Value = Text1.Text
Data1.Recordset.Update
Text1.Visible = False
Flex1.Refresh
End Sub
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34682801
jora-objora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IguMENКороче, я запустил вот это и у меня все работает:

тупо все скопировал, вставил, всеравно та же ошибка Field cant be updated и текст появляется не на ячейке, а збоку. можешь скинуть куда-нить свою прогу?
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34682879
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мож у тебя не поставлен 6 сервиспак? Хотя вряд ли из-за этого...
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34682881
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ: Вот мой вариант
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34682959
jora-objora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это уже интересно, в Вашей версии помимо ошибки Field cant be updated , появилась еще
Data type conversation error ))
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34683055
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче так: у меня Все (абсолютно) работает. Следовательно ( => ) Баги не в проге, а в системе.
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34683110
Фотография gjghjc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Data1.Recordset.Fields(a).Value = Text1.Text
По поводу этой строки.
А какой тип у .Fields(a)? Может ты пытаешься запихать в числовое поле строковую переменную?

С уважением, Николай.
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34683663
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вполне возможно. Но я пытался сделать это на 1 поле (не нулевом) таблицы BIBLIO и все работало. Т.к. там - текст
...
Рейтинг: 0 / 0
MSFlexGrid и БД
    #34684002
jora-objora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может ли быть проблема из-за винды?
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / MSFlexGrid и БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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