|
|
|
| Есть поле (столбец) и в нем многа многа чекбоксов, как поставить флажки во все - программно ?
пс. Тоесть как я понимаю нужно создать цикл (if ... ) и пробежаться по всем чекбоксам и менять Value с False на True, если True то следующий... Вроде бы так как то должно быть
Заранее хотел поблагодарить за помощь, на этом сайте ее всегда можно найти (по Access' у точно! ) | |
|
| |
|
|
|
| Вы всё правильнопонимаете,
а что не получается? | |
|
| |
|
|
|
| да понимать понимаю а написать не могу ))) прадокс. Не хватает видимо мне бызы (не путать с Access ) элементарных знаний | |
|
| |
|
|
|
| А в Dao сможешь по таблице пробежать и переприсвоить? | |
|
| |
|
|
|
| Private Sub замена()
Dim dbs As DAO.Database 'Объявляем базу данных
'Dim rstOtkuda As DAO.Recordset 'Объявляем рекордсет
Set dbs = CurrentDb 'Открываем базу
'Set rstOtkuda = dbs.OpenRecordset("учет")
With rstOtkuda
'.MoveFirst 'Перемещаемся к первой записи
'.MoveLast 'Перемещаемся к ппоследней записи
'.MoveNext 'Перемещаемся к следующей записи
Do While Not .EOF 'Выполнять пока есть записи
.edit'изменение
![box1] = -1
.Update 'Обновляем рекордсет
Loop
End With
'Закрываем рекордсет и базу данных
rstOtkuda.Close
'Set rstOtkuda = Nothing'Очистка памяти
dbs.Close
Set dbs = Nothing 'Очистка памяти
End Sub | |
|
| |
|
|
|
| так ведь и сейчас все в DAO должно писаться или в ADO?
Сейчас попробую (ток на обед схожу , а то на голодный желудок можно такооого написать)
пс. Нашел похожий примерчик на форуме | |
|
| |
|
|
|
| ух ты , спасибо час! щас попробую, минуточку....... | |
|
| |
|
|
|
| Ну тады и я пойду поем | |
|
| |
|
|
|
| А одним запросом на обновление не проще будет? | |
|
| |
|
|
|
|
|
| что то на .edit компилятор ругается . . . я посмотрел пример в справке там немного подругому:
With rstEmployees
EditModeOutput "Before any Edit or AddNew:", .EditMode
.Edit
EditModeOutput "After Edit:", .EditMode
.Update
EditModeOutput "After Update:", .EditMode
.AddNew
EditModeOutput "After AddNew:", .EditMode
.CancelUpdate
EditModeOutput "After CancelUpdate:", .EditMode
.Close
End With
|
++++++++++++++++++++++++++
виноват, не тот пример посмотрел
И еще все просто было, оказалось у меня DAO была не подключена | |
|
| |
|
|
|
| В итоге вот что получилось , правда выполняется уже минут 20(это нормально ?! ) :
Private Sub Кнопка0_Click()
Dim dbs As DAO.Database 'Объявляем базу данных
Dim rst As DAO.Recordset 'Объявляем рекордсет
'Set dbs1 = OpenDatabase("db1.mdb")
Set dbs = CurrentDb 'Открываем базу
Set rst = dbs.OpenRecordset("Пластик", dbOpenDynaset)
With rst
'.MoveFirst 'Перемещаемся к первой записи
'.MoveLast 'Перемещаемся к ппоследней записи
'.MoveNext 'Перемещаемся к следующей записи
Do While Not .EOF 'Выполнять пока есть записи
.edit 'изменение.
![ДЧИ] = -1
.Update 'Обновляем рекордсет
Loop
End With
'Закрываем рекордсет и базу данных
rst.Close
'Set rstOtkuda = Nothing'Очистка памяти
dbs.Close
Set dbs = Nothing 'Очистка памяти
End Sub
|
ДЧИ это поле с флажками в таблице Пластик | |
|
| |
|
|
|
| нет это не нормально
надо раскомпилить или добавитьстроки
With rst
.MoveLast 'Перемещаемся к ппоследней записи
.MoveFirst 'Перемещаемся к первой записи
и вот тут немного не так
надо так
'Закрываем рекордсет и базу данных
rst.Close
Set rst = Nothing'Очистка памяти
dbs.Close
Set dbs = Nothing 'Очистка памяти
End Sub | |
|
| |
|
|
|
| Уважаемый час! я сделал вот так (благодаря вашей наводке ) :
Private Sub Кнопка1_Click()
Dim dbs As Database
Dim strSQL As String
' Возвращает ссылку на текущую базу данных.
Set dbs = CurrentDb
' Создает строку SQL.
strSQL = "UPDATE Пластик SET ДЧИ = True"
' Выполняет запрос на изменение.
dbs.Execute strSQL
' Возвращает число обновленных записей.
Debug.Print dbs.RecordsAffected
Set dbs = Nothing
End Sub
|
А иначе висит и висит , считает что то ..... | |
|
| |
|
|
|
| а висит потому, что перехода к следующей записи не было
'.MoveNext 'Перемещаемся к следующей записи
Private Sub Кнопка0_Click()
Dim dbs As DAO.Database 'Объявляем базу данных
Dim rst As DAO.Recordset 'Объявляем рекордсет
'Set dbs1 = OpenDatabase("db1.mdb")
Set dbs = CurrentDb 'Открываем базу
Set rst = dbs.OpenRecordset("Пластик", dbOpenDynaset)
With rst
'.MoveFirst 'Перемещаемся к первой записи
'.MoveLast 'Перемещаемся к ппоследней записи
'.MoveNext 'Перемещаемся к следующей записи
Do While Not .EOF 'Выполнять пока есть записи
.edit 'изменение.
![ДЧИ] = -1
.Update 'Обновляем рекордсет
.MoveNext 'Перемещаемся к следующей записи
Loop
End With
'Закрываем рекордсет и базу данных
rst.Close
'Set rstOtkuda = Nothing'Очистка памяти
dbs.Close
Set dbs = Nothing 'Очистка памяти
End Sub
|
Ну да ладно чё так много кода когда быстрее запросом
Эт я так - чтоб Вам на заметку | |
|
| |
|
|
|
| Все что Вы понаписали, можно сделать одной строчкой:
Private Sub Кнопка0_Click()
CurrentDb.Execute "UPDATE [Пластик] SET [ДЧИ] = True;"
End Sub
|
| |
|
| |
|
|
|
| ну Lukas , что я могу сказать , развожу руками хлопаю ушами Пока не дорос до Вашего мастерства | |
|
| |
|
|
|
| где Вы Lukas пропадаете? | |
|
| |
|
|
|
| На заметку принято | |
|
| |
|
|
|
| 2 час . Да, я проверил все дело было в MoveNext :) НО запрос на изменение все равно быстрее работает | |
|
| |
|
|
|
|
| Усли в табличной форме, то:
[ЧекбоксИмя]=True
Работает - ставится во всех, сам так делал | |
|
| |
|
|
|
| Совершено верно Alex!!! | |
|
| |