Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Обновление в базе данных и ошибка "Отсутствует аргумент для - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вопросы по VB, VBS, VB.net » Обновление в базе данных и ошибка "Отсутствует аргумент для
Обновление в базе данных и ошибка "Отсутствует аргумент для
Stormy Дата: Суббота, 30.05.2015, 14:05 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток, уважаемые форумчане!
Пытаюсь обновить данные в базе данных ( база Аксесс 2007). Требует указать все аргументы.
Что нужно указать-то ? Пробовал продублировать названия текстбоксов, но ничего не получилось.
Ошибка
Цитата
Ошибка    1    Отсутствует аргумент для параметра "Original_Kod" в "Public Overridable Overloads Function Mallar_update(Kod As String, Mal_ad_eng As String, Mal_ad_az As String, Original_SN As Integer, Original_SN1 As Integer, Original_SN2 As Integer, Original_SN3 As Integer, Original_SN4 As Integer, Original_Kod As String, Original_Kod1 As String) As Integer". C:\Users\User\Google Диск\VB\SDP - HMK\SDP2\SDP2\Form1.vb    25    9    SDP2


Структура базы


Код для обновления

[vba]
Код
Sub update_mal_setir()
           Me.DataGridView1.SelectedRows(0).Cells(1).Value = Me.TB_Kod.Text
           Me.DataGridView1.SelectedRows(0).Cells(2).Value = Me.TB_MAE.Text
           Me.DataGridView1.SelectedRows(0).Cells(3).Value = Me.TB_MAA.Text
           Mal_siyahiTableAdapter1.Mallar_update()
       End Sub
[/vba]
SQL запрос к базе данных ( создан мастером запросов в VS 2013)

[vba]
Код
UPDATE Mal_siyahi
SET Kod = 'Me.TB_Kod.[Text]', Mal_ad_eng = 'Me.TB_MAE.[Text]', Mal_ad_az = 'Me.TB_MAA.[Text]'
WHERE (SN = ?) AND (? = 1) AND (Kod IS NULL) AND (? = 1) AND (Mal_ad_eng IS NULL) AND (? = 1) AND (Mal_ad_az IS NULL) OR
(SN = ?) AND (? = 1) AND (Kod = ?) AND (? = 1) AND (Mal_ad_eng IS NULL) AND (Mal_ad_az IS NULL) OR
(SN = ?) AND (? = 1) AND (Kod IS NULL) AND (? = 1) AND (Mal_ad_eng = ?) AND (Mal_ad_az IS NULL) OR
(SN = ?) AND (? = 1) AND (Kod = ?) AND (Mal_ad_eng = ?) AND (Mal_ad_az IS NULL) OR
(SN = ?) AND (? = 1) AND (Kod IS NULL) AND (? = 1) AND (Mal_ad_eng IS NULL) AND (Mal_ad_az = ?) OR
(SN = ?) AND (? = 1) AND (Kod = ?) AND (Mal_ad_eng IS NULL) AND (Mal_ad_az = ?) OR
(SN = ?) AND (? = 1) AND (Kod IS NULL) AND (Mal_ad_eng = ?) AND (Mal_ad_az = ?) OR
(SN = ?) AND (Kod = ?) AND (Mal_ad_eng = ?) AND (Mal_ad_az = ?)
[/vba]


Место для рекламы.
 
Ответить
СообщениеДоброго времени суток, уважаемые форумчане!
Пытаюсь обновить данные в базе данных ( база Аксесс 2007). Требует указать все аргументы.
Что нужно указать-то ? Пробовал продублировать названия текстбоксов, но ничего не получилось.
Ошибка
Цитата
Ошибка    1    Отсутствует аргумент для параметра "Original_Kod" в "Public Overridable Overloads Function Mallar_update(Kod As String, Mal_ad_eng As String, Mal_ad_az As String, Original_SN As Integer, Original_SN1 As Integer, Original_SN2 As Integer, Original_SN3 As Integer, Original_SN4 As Integer, Original_Kod As String, Original_Kod1 As String) As Integer". C:\Users\User\Google Диск\VB\SDP - HMK\SDP2\SDP2\Form1.vb    25    9    SDP2


Структура базы


Код для обновления

[vba]
Код
Sub update_mal_setir()
           Me.DataGridView1.SelectedRows(0).Cells(1).Value = Me.TB_Kod.Text
           Me.DataGridView1.SelectedRows(0).Cells(2).Value = Me.TB_MAE.Text
           Me.DataGridView1.SelectedRows(0).Cells(3).Value = Me.TB_MAA.Text
           Mal_siyahiTableAdapter1.Mallar_update()
       End Sub
[/vba]
SQL запрос к базе данных ( создан мастером запросов в VS 2013)

[vba]
Код
UPDATE Mal_siyahi
SET Kod = 'Me.TB_Kod.[Text]', Mal_ad_eng = 'Me.TB_MAE.[Text]', Mal_ad_az = 'Me.TB_MAA.[Text]'
WHERE (SN = ?) AND (? = 1) AND (Kod IS NULL) AND (? = 1) AND (Mal_ad_eng IS NULL) AND (? = 1) AND (Mal_ad_az IS NULL) OR
(SN = ?) AND (? = 1) AND (Kod = ?) AND (? = 1) AND (Mal_ad_eng IS NULL) AND (Mal_ad_az IS NULL) OR
(SN = ?) AND (? = 1) AND (Kod IS NULL) AND (? = 1) AND (Mal_ad_eng = ?) AND (Mal_ad_az IS NULL) OR
(SN = ?) AND (? = 1) AND (Kod = ?) AND (Mal_ad_eng = ?) AND (Mal_ad_az IS NULL) OR
(SN = ?) AND (? = 1) AND (Kod IS NULL) AND (? = 1) AND (Mal_ad_eng IS NULL) AND (Mal_ad_az = ?) OR
(SN = ?) AND (? = 1) AND (Kod = ?) AND (Mal_ad_eng IS NULL) AND (Mal_ad_az = ?) OR
(SN = ?) AND (? = 1) AND (Kod IS NULL) AND (Mal_ad_eng = ?) AND (Mal_ad_az = ?) OR
(SN = ?) AND (Kod = ?) AND (Mal_ad_eng = ?) AND (Mal_ad_az = ?)
[/vba]

Автор - Stormy
Дата добавления - 30.05.2015 в 14:05
doober Дата: Суббота, 30.05.2015, 20:07 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
У вас подход немного не верный.
Ваш вариант.
[vba]
Код
XTableAdapter.Fill(XDatatable)
DataGridView1.DataSource=XDatatable
'-----------------------------
XTableAdapter.Udate(XDatatable)
[/vba]
В вашем варианте-ищите измененные строки в гриде и обновляйте их.
Лучше так сделать.
[vba]
Код
XTableAdapter.Fill(XDatatable)
BS = New System.Windows.Forms.BindingSource
BS.DataSource=XDatatable
DataGridView1.DataSource=BS   
'------------------------------------
BS.endedit
XTableAdapter.Udate(XDatatable)
[/vba]
Совет,то .что касается dataseta и создания адаптеров и команд-не делайте в дизайнере,пишите свои классы.
Будет серьезная база данных. будет морока




Сообщение отредактировал doober - Суббота, 30.05.2015, 20:08
 
Ответить
СообщениеУ вас подход немного не верный.
Ваш вариант.
[vba]
Код
XTableAdapter.Fill(XDatatable)
DataGridView1.DataSource=XDatatable
'-----------------------------
XTableAdapter.Udate(XDatatable)
[/vba]
В вашем варианте-ищите измененные строки в гриде и обновляйте их.
Лучше так сделать.
[vba]
Код
XTableAdapter.Fill(XDatatable)
BS = New System.Windows.Forms.BindingSource
BS.DataSource=XDatatable
DataGridView1.DataSource=BS   
'------------------------------------
BS.endedit
XTableAdapter.Udate(XDatatable)
[/vba]
Совет,то .что касается dataseta и создания адаптеров и команд-не делайте в дизайнере,пишите свои классы.
Будет серьезная база данных. будет морока

Автор - doober
Дата добавления - 30.05.2015 в 20:07
Stormy Дата: Понедельник, 01.06.2015, 09:32 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
doober,
Спасибо, Сергей.
Воспользуюсь Вашим советом, то-то же думаю, почему многие не пользуются дизайнером.


Место для рекламы.
 
Ответить
Сообщениеdoober,
Спасибо, Сергей.
Воспользуюсь Вашим советом, то-то же думаю, почему многие не пользуются дизайнером.

Автор - Stormy
Дата добавления - 01.06.2015 в 09:32
Stormy Дата: Вторник, 02.06.2015, 07:46 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
doober,
Как-то через одно известное место у меня все работает. Если использовать данный код, то датагрид *сортирует* записи и отображает только выделенную.
После запуска кода во второй раз значения из текстбокса в датиагрид меняются, но в базе обновляться не хотят.
[vba]
Код
Sub update_mal_setir()
         Dim BS As New System.Windows.Forms.BindingSource
             
         'BS = New System.Windows.Forms.BindingSource
         BS.DataSource = Me.MallarDataSet
         DataGridView1.DataSource = BS
         Me.DataGridView1.SelectedRows(0).Cells(1).Value = Me.TB_Kod.Text
         Me.DataGridView1.SelectedRows(0).Cells(2).Value = Me.TB_MAE.Text
         Me.DataGridView1.SelectedRows(0).Cells(3).Value = Me.TB_MAA.Text
         Me.Mal_siyahiTableAdapter1.Fill(Me.MallarDataSet._Mal_siyahi)
         '------------------------------------
         BS.endedit()
         Me.Mal_siyahiTableAdapter1.Update(Me.MallarDataSet)
     End Sub
[/vba]


Место для рекламы.
 
Ответить
Сообщениеdoober,
Как-то через одно известное место у меня все работает. Если использовать данный код, то датагрид *сортирует* записи и отображает только выделенную.
После запуска кода во второй раз значения из текстбокса в датиагрид меняются, но в базе обновляться не хотят.
[vba]
Код
Sub update_mal_setir()
         Dim BS As New System.Windows.Forms.BindingSource
             
         'BS = New System.Windows.Forms.BindingSource
         BS.DataSource = Me.MallarDataSet
         DataGridView1.DataSource = BS
         Me.DataGridView1.SelectedRows(0).Cells(1).Value = Me.TB_Kod.Text
         Me.DataGridView1.SelectedRows(0).Cells(2).Value = Me.TB_MAE.Text
         Me.DataGridView1.SelectedRows(0).Cells(3).Value = Me.TB_MAA.Text
         Me.Mal_siyahiTableAdapter1.Fill(Me.MallarDataSet._Mal_siyahi)
         '------------------------------------
         BS.endedit()
         Me.Mal_siyahiTableAdapter1.Update(Me.MallarDataSet)
     End Sub
[/vba]

Автор - Stormy
Дата добавления - 02.06.2015 в 07:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вопросы по VB, VBS, VB.net » Обновление в базе данных и ошибка "Отсутствует аргумент для
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!