5 / 5 / 1
Регистрация: 05.02.2010
Сообщений: 67
1

Как обращаться с одной формы к DGV, находящемуся на другой форме

08.12.2011, 20:56. Показов 2562. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите как обращаться с одной формы к датагриду находящемуся на другой форме,
добавлять новые элементы. Скажем так....есть поля "Название", "Описание" и тд.
Я создал форму добавления и теперь ищу способ реализовать ее.
Подскажите как из текстбокса считать текст и записать в датагрид, и еще, если есть база данных подключенная к проекту, как сохранить в нее созданную новую запись
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2011, 20:56
Ответы с готовыми решениями:

Как передать данные из одной dgv одной формы в dgv другой?
Проблема номер 2 Моя программа работает с базой данных, записывает, удаляет и считывает данные...

Как из одной формы обращаться к переменным другой формы
Мне надо с Form1 на Form2 "перекинуть" переменную, которая считается на Form1 и выводится нa Label...

Как из одной формы запустить Sub в другой форме?
Уважаемые, у меня такая ситуация: есть две формы, на одной я создал Sub с именем Refr, т.е. у меня...

Как из одной формы запустить Sub в другой форме? (Дубль два)
Есть две формы: frmMain и frmNew. На frmMain есть Sub Refr. Мне нужно из кода формы frmNew...

18
36 / 36 / 3
Регистрация: 26.09.2009
Сообщений: 298
10.12.2011, 14:18 2
Cuba, при подключении базы вот в этом окошке жмяк
нажать "нет" и база будет обновляться.
Про датагрид ап, так же интересует очень.
0
11487 / 3774 / 678
Регистрация: 13.02.2009
Сообщений: 11,153
10.12.2011, 17:06 3
Насколько мне известно в базе данных данные хранятся не в формах, а в таблицах.
Формы служат для отображения результатов.
Поэтому и добалять данные надо в таблицу
А добавлять в таблицу примерно так(кусок кода из моей программы)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Table = "Данные"
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(Table)
For i = 1 To Spisok(4, 0)
    rst.AddNew
    rst("ГодКонтракта") = Spisok(0, 0)
    rst("КодСубъекта") = Spisok(1, 0)
    rst("КодЛесничества") = Spisok(2, 0)
    rst("КодУчЛесничества") = Spisok(3, 0)
    rst("ИНомер") = i
    rst("Дата_2") = Spisok(5, 0)
    rst.Update
Next i
1
36 / 36 / 3
Регистрация: 26.09.2009
Сообщений: 298
10.12.2011, 22:17 4
Alex77755, есть форма с датагрид, есть ещё одна форма с полями, соответствующими столбцам в таблице, вводишь данные в поля, нажимаешь кнопочку, все сохраняется, данные в таблице обновляются. Вот так надеюсь понятней суть вопроса изложил.
1
5 / 5 / 1
Регистрация: 05.02.2010
Сообщений: 67
11.12.2011, 01:39  [ТС] 5
necro изложил всю суть более проще!....именно это я мне и необходимо
0
11487 / 3774 / 678
Регистрация: 13.02.2009
Сообщений: 11,153
11.12.2011, 12:02 6
necro, Cuba
О какой база вы говорите? Где у вас хранятся данные?
Когда говорят о базе - подразумевается что это mdb.
Но вовсе не обязательно. База может быть и в других форматах( txt, xls и пр.)
0
36 / 36 / 3
Регистрация: 26.09.2009
Сообщений: 298
11.12.2011, 14:04 7
По моему в данном вопросе не важно, какой формат имеет база, хотя мб я ошибаюсь, .mdf.
Тут важно другое. Как добавить в датагрид данные, с помощтю другой формы, если до сих пор не понятно объяснил, то вот скрины.
Вот дата грид http://www.fotohost.by/show/bd... 96b4411c00
вот вторая форма http://www.fotohost.by/show/47... a5a35610ea

Нажимаю на кнопку сохранить и данные добавляются на первую форму в датагрид. надеюсь так понятней.
А вопрос, как это сделать.
0
11487 / 3774 / 678
Регистрация: 13.02.2009
Сообщений: 11,153
11.12.2011, 14:35 8
Тут важно другое. Как добавить в датагрид данные,
Вот именно это и важно: как изначально данные попадают в форму из таблицы?
Если источником данных служит рекордсет, то никак. Только менять(добавлять, редактировать) источник данных.

Добавлено через 1 минуту
Ссылки не открываются Да и не охота смотреть картинки.
Лучше выложи проект

Добавлено через 3 минуты
Нажимаю на кнопку сохранить и данные добавляются на первую форму в датагрид
Не надо добавлять данные в форму в датагрид!!!!
Он служит только для отображения данных!!!
Добавлять надо сразу в базу.

Добавлено через 10 минут
Если делаете из VB добавлять так:
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
Private Sub cmdOk_Click()
Dim db As DAO.Database 'Объявляем базу данных
Dim rs As DAO.Recordset 'Объявляем рекордсет
Dim sSQL As String 'Переменная, где будет размещён SQL запрос
Dim Contrl As Control
'Проверяем корректность данных
If IsNumeric(txtID.Text) = False Or txtName.Text = "" Or _
txtEmail.Text = "" Or txtOrder.Text = "" Then
    MsgBox "Проверьте заполнение полей!", vbExclamation
    Exit Sub
End If
 
Set db = DAO.OpenDatabase(frmMain.dbname)
sSQL = "SELECT * FROM KR1;"
Set rs = db.OpenRecordset(sSQL)
 
'Для добавления записи используется метод AddNew.
rs.AddNew
'Теперь запись добавлена, и мы заполняем все поля для данной записи.
rs.Fields(0) = txtID.Text
rs.Fields(1) = txtName.Text
rs.Fields(2) = txtEmail.Text
rs.Fields(3) = txtOrder.Text
'Обновляем рекордсет.
rs.Update
'Закрываем рекордсет и базу данных и освобождаем память.
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
 
Unload Me
End Sub
0
36 / 36 / 3
Регистрация: 26.09.2009
Сообщений: 298
11.12.2011, 14:56 9
В общем вот проект.
Мы наверное друг друга не понимаем или я вас не понимаю, скорее второе.
Вложения
Тип файла: rar WindowsApplication6.rar (894.7 Кб, 27 просмотров)
0
11487 / 3774 / 678
Регистрация: 13.02.2009
Сообщений: 11,153
11.12.2011, 15:16 10
Только увидев название архива я уже понял: Ты не в том разделе:
У тебя NET там, конечно, всё не так!!
Выбирай правильно раздел

Добавлено через 1 минуту
Да к тому же 2010!!
У меня только 2008 - открыть не могу

Добавлено через 15 минут
Или при импорте в 2008(в чём я сомневаюсь так как раньше уже такое делал без ошибок) или
Не могу понять зачем столько раз дублировать:
Visual Basic
1
2
3
4
        Public Event Вид_услугиRowChanging As Вид_услугиRowChangeEventHandler
        Public Event Вид_услугиRowChanged As Вид_услугиRowChangeEventHandler
        Public Event Вид_услугиRowDeleting As Вид_услугиRowChangeEventHandler
        Public Event Вид_услугиRowDeleted As Вид_услугиRowChangeEventHandler
Уже с десяток таких блоков закомментил и всё равно: количество ошибок превышает допустимое количество 103
0
36 / 36 / 3
Регистрация: 26.09.2009
Сообщений: 298
11.12.2011, 15:31 11
скорее при импорте, в 2010 у меня такого нету
0
11487 / 3774 / 678
Регистрация: 13.02.2009
Сообщений: 11,153
11.12.2011, 15:32 12
А как звучало задание вообще?
Всё надо было создавать программно?
Visual Basic
1
2
        Me.GroupBox1.Controls.Add(Me.Button2)
        Me.GroupBox1.Controls.Add(Me.Button1)
Что-то мне подсказывает, что процентов 90 из этой проги надо выкинуть
0
36 / 36 / 3
Регистрация: 26.09.2009
Сообщений: 298
11.12.2011, 15:42 13
Да это не задание, это я вообще курсовую пытаюсь делать.
Нашел другой выход, повытягивал на форму из data sources все столбцы эти, когда в таблице выделяю строку то она отображается в этих полях, если выделю пустую, то могу добавить новые данные и они в принципе сохраняются, но это все равно не то, хотелось бы тоже самое, но через другую форму.
0
11487 / 3774 / 678
Регистрация: 13.02.2009
Сообщений: 11,153
11.12.2011, 15:44 14
У меня получилось кода более 8000 строк.
Много дублей. Может быть это издерки импорта.
Скопируй код самих форм
0
36 / 36 / 3
Регистрация: 26.09.2009
Сообщений: 298
11.12.2011, 15:54 15
там же кода и нету считай никакого оО
VB.NET
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
36
37
38
39
40
41
42
43
Public Class Form1
 
    Private Sub ВрачиBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Validate()
        Me.ВрачиBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.СтоматологияDataSet)
 
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'СтоматологияDataSet.Пациенты' table. You can move, or remove it, as needed.
        Me.ПациентыTableAdapter.Fill(Me.СтоматологияDataSet.Пациенты)
        'TODO: This line of code loads data into the 'СтоматологияDataSet.Вид_услуги' table. You can move, or remove it, as needed.
        Me.Вид_услугиTableAdapter.Fill(Me.СтоматологияDataSet.Вид_услуги)
        'TODO: This line of code loads data into the 'СтоматологияDataSet.Вид_услуги' table. You can move, or remove it, as needed.
        Me.Вид_услугиTableAdapter.Fill(Me.СтоматологияDataSet.Вид_услуги)
        'TODO: This line of code loads data into the 'СтоматологияDataSet.Услуги' table. You can move, or remove it, as needed.
        Me.УслугиTableAdapter.Fill(Me.СтоматологияDataSet.Услуги)
        'TODO: This line of code loads data into the 'СтоматологияDataSet.Пациенты' table. You can move, or remove it, as needed.
        Me.ПациентыTableAdapter.Fill(Me.СтоматологияDataSet.Пациенты)
        'TODO: This line of code loads data into the 'СтоматологияDataSet1.Врачи' table. You can move, or remove it, as needed.
 
        'TODO: This line of code loads data into the 'СтоматологияDataSet.Расписание' table. You can move, or remove it, as needed.
        Me.РасписаниеTableAdapter.Fill(Me.СтоматологияDataSet.Расписание)
        'TODO: This line of code loads data into the 'СтоматологияDataSet.Врачи' table. You can move, or remove it, as needed.
        Me.ВрачиTableAdapter.Fill(Me.СтоматологияDataSet.Врачи)
 
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Form2.Show()
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 
    End Sub
 
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Me.Validate()
        Me.ВрачиBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.СтоматологияDataSet)
    End Sub
End Class
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Class Form2
 
    Private Sub ВрачиBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Validate()
        Me.ВрачиBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.СтоматологияDataSet)
 
    End Sub
 
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    End Sub
End Class
0
11487 / 3774 / 678
Регистрация: 13.02.2009
Сообщений: 11,153
11.12.2011, 16:45 16
Не получается полностью импортировать проект.
Вижу только, что таблица на форме привязывается к таблице в базе.
Поэтому точно данные надо добавлять не в таблицу на форме, а непосредственно в базу.

Добавлено через 2 минуты
если выделю пустую, то могу добавить новые данные и они в принципе сохраняются
Вот в эти поля и вписывай данные с другой формы.

Добавлено через 1 минуту
Хотя вряд ли так получится если у полей указан источник данных
0
5 / 5 / 1
Регистрация: 05.02.2010
Сообщений: 67
11.12.2011, 17:11  [ТС] 17
Ребята, если я вам скину архив со своим проектом, сможете дописать необходимый код для добавления записей в бд?
0
11487 / 3774 / 678
Регистрация: 13.02.2009
Сообщений: 11,153
11.12.2011, 17:14 18
Попроси, то бы топик перенесли в NET
Там больше спецов по твоей теме. Я немного разбираюсь, но у меня 2008
0
5 / 5 / 1
Регистрация: 05.02.2010
Сообщений: 67
11.12.2011, 20:09  [ТС] 19
ребята а как сделать , что-бы при нажатии кнопки открывало Help находящийся в той же папке что и проект

Добавлено через 2 минуты
VB.NET
1
Help.ShowHelp(HelpProvider1.HelpNamespace, "Help.chm")
в C# что-то вроде такого писал а в бэйсике я хз

как вариант еще
VB.NET
1
System.Diagnostics.Process.Start("Help.chm")
но пишет что путь неверный, хелп лежит рядом с исполняемым файлом Sln но не открывает.....в чем ошибка?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2011, 20:09
Помогаю со студенческими работами здесь

Как из одной формы изменить значение переменной в другой форме?
Есть несколько форм. При открытии формы 6,7 или 8, появляется вопрос с тремя вариантами ответа, и...

Как из одной формы запустить метод, который находится в другой форме
Здравствуйте. С недавнего времени я изучаю C# (до этого работал в VB). Появилась первая...

Как из ComboBox на одной форме записать нужную строчку в Label другой формы?
Здравствуйте, а вот еще вопрос, а как из ComboBox на форме( form1) записать нужную строчку, в label...

Обращение к DataGridView, находящемуся на другой форме
Здравствуйте, столкнулся с проблемой при редактировании значения DataGrid, находящегося в Form1 из...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru