Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
Потому что надо так писать -

Private Sub Command9_Click()
Dim ds As DAO.Recordset: Set ds = Me!Nauja_gamybos_uzduotis_ReikiaGamintSubform.Form.RecordsetClone: ds.MoveFirst
Do While Not ds.EOF
    ds.Edit: ds("BusenosID") = 1: ds.Update ': ds.MoveNext
    ds.Edit: ds("Gamibines UzduotiesID") = Forms![Nauja_gamybos_uzduotis]![GamibinesUzduotiesID]: ds.Update: ds.MoveNext
Loop
Me!Nauja_gamybos_uzduotis_ReikiaGamintSubform.Requery
Me!Nauja_gamybos_uzduotis_ItrauktaUzduotiSubform.Requery
End Sub

Всё пора домой, а то скоро забуду как компьютер включать надо ;)
10 янв 07, 18:19    [3623391]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
2 Karfaqen
да, я и сам заметил. Спасибо.
10 янв 07, 18:21    [3623403]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
ByKiS
Потому что надо так писать
ds.Update и ds.Edit в середке там тоже лишние. Вот так лучше:
Do While Not ds.EOF
    ds.Edit 
    ds("BusenosID") = 1 
    ds("Gamibines UzduotiesID") = Forms![Nauja_gamybos_uzduotis]![GamibinesUzduotiesID]
    ds.Update
    ds.MoveNext 
Loop
10 янв 07, 18:48    [3623509]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
С надеждой только на доброго и терпеливого Владимир Саныч, т.к. остальных похоже з****л

И всё таки как мне решить то с чем обратился?

ILL HEAD
SelTop SelLeft SelHeight SelWidth - F1

Я когда на кнопку тыкаю, поля-то уже не выделены... Может хоть носом тыкните где мне искать, а то по совету
ILL HEAD
F1 + мысленные_усилия + проба (возможен цикл)
из тыц

этот цикл бесконечный получается...
11 янв 07, 15:43    [3628015]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
4321
Member [заблокирован]

Откуда:
Сообщений: 3573
ByKiS
Я когда на кнопку тыкаю, поля-то уже не выделены...

пользуйте _вместо_ кнопки контрол, не получающий фокуса. например лейбл или картинку.
11 янв 07, 16:20    [3628304]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
Так и не доходит до меня с этими SelTop, подскажите, что не так написал
Private Sub Label18_Click()
lngNumRows = Me.ЗаказыЖдут_Subform.Form.SelHeight
lngTopRow = Me.ЗаказыПринял_Subform.Form.SelTop
I = 1
With Me.RecordsetClone
   .MoveFirst
   .Move lngTopRow - 1
   Do
  Me!ЗаказыЖдут_Subform.Form.СтатусID = 1
  Me!ЗаказыЖдут_Subform.Form.ЗаданиеНаПроизводствоID = Me![ЗаданиеНаПроизводствоID]
  Me!ЗаказыЖдут_Subform.Form.СкладID = -660584572
       I = I + 1
       .MoveNext
   Loop Until I = lngNumRows
End With
Me!ЗаказыЖдут_Subform.Requery
Me!ЗаказыПринял_Subform.Requery
End Sub
12 янв 07, 14:54    [3633272]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
Может Гуру всётаки моглибы найти время не только на языковедство и толкование слов любой, каждый, но ещё взглянуть на начинающих?

У меня тут копируется непойми что, никак не разберусь, а поиск в форуме ничего, кроме "используйте SelTop..." не дал...

Private Sub Label18_Click()
Dim i As Long, rs As DAO.Recordset
Set rs = Me!ЗаказыЖдут_Субформ.Form.RecordsetClone
lngNumRows = Me!ЗаказыЖдут_Субформ.Form.SelHeight
lngTopRow = Me.ЗаказыЖдут_Субформ.Form.SelTop
rs.Move lngTopRow
Do
i = i + 1
rs.Edit
rs("СтатусID") = 1
rs("ЗаданиеНаПроизводствоID") = Me![ЗаданиеНаПроизводствоID]
rs("СкладID") = -660584572
rs.Update
rs.Move lngTopRow + 1
Loop Until i = lngNumRows
Me!ЗаказыЖдут_Субформ.Requery
Me!ЗаказыПринял_Subform.Requery
End Sub
12 янв 07, 16:58    [3634224]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
ByKiS
rs.Move lngTopRow
Do
i = i + 1
rs.Edit
rs("СтатусID") = 1
rs("ЗаданиеНаПроизводствоID") = Me![ЗаданиеНаПроизводствоID]
rs("СкладID") = -660584572
rs.Update
rs.Move lngTopRow + 1
Loop Until i = lngNumRows
Благодаря синему вы обновляете первую выделенную запись. А потом благодаря красному вы (n раз) обновляете следующую выделенную запись.
12 янв 07, 17:15    [3634326]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
С первой записью проблем нет (если выделена одна, то тоже), а потом обновляется непойми что. То что вообще не выделено :'(
Может тут индесы какие учавствуют или сортировка? Меняю rs.Move lngTopRow + 1 на rs.MoveNext - результат тотже (то есть не тот, но всё равно не тот который нужен)... Помогите разобраться, пожалуйста.
12 янв 07, 17:30    [3634399]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Так можно
Private Sub Label18_Click()
    Dim i&
    Dim f As Form: Set f = Me("ЗаказыЖдут_Субформ").Form
    Dim rs As dao.Recordset: Set rs = f.RecordsetClone
    
    rs.AbsolutePosition = f.SelTop - 1
    Do While Not rs.EOF
        i = i + 1: If i > f.SelHeight Then Exit Do
        rs.Edit
        rs("СтатусID") = 1
        rs("ЗаданиеНаПроизводствоID") = Me("ЗаданиеНаПроизводствоID")
        rs("СкладID") = -660584572
        rs.Update
        rs.MoveNext
    Loop
End Sub
12 янв 07, 17:51    [3634558]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
Подскажите в чём проблема, пожалуйста.
Private Sub AcceptAll_Click()
Dim ds As DAO.Recordset: Set ds = Me!Nauja_gamybos_uzduotis_ReikiaGamintSubform.Form.RecordsetClone: ds.MoveFirst
Do While Not ds.EOF
    ds.Edit
    ds("BusenosID") = 1
    ds("GamibinesUzduotiesID") = Forms![Nauja_gamybos_uzduotis]![GamibinesUzduotiesID]
    ds("SandelisID") = -660584572
    ds.Update
    ds.MoveNext
Loop
Me!Nauja_gamybos_uzduotis_ReikiaGamintSubform.Requery
Me!Nauja_gamybos_uzduotis_ItrauktaUzduotiSubform.Requery
Me!Nauja_gamybos_uzduotis_visoSubform.Requery
Me!Nauja_gamybos_uzduotis_visolaukia.Requery
'DoCmd.ShowAllRecords
End Sub


К сообщению приложен файл. Размер - 0Kb
17 янв 07, 15:21    [3655068]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
Как-то я уже вниз уехал, а никто так и не помог :(
17 янв 07, 17:01    [3655838]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Он вам пишет про несохраненное значение. Вы попробуйте для начала дать ему то, что он хочет - сделайте сохранение текущей записи во первых строках этой функции.
17 янв 07, 17:34    [3656099]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
А как?
17 янв 07, 17:41    [3656175]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
По-разному можно. См. DoMenuItem, RunCommand, Dirty.
17 янв 07, 18:24    [3656524]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
Private Sub AcceptOne_Click()
Me!Nauja_gamybos_uzduotis_ReikiaGamintSubform.Form.BusenosID = 1
Me!Nauja_gamybos_uzduotis_ReikiaGamintSubform.Form.GamibinesUzduotiesID = Me![GamibinesUzduotiesID]
Me!Nauja_gamybos_uzduotis_ReikiaGamintSubform.Form.SandelisID = -660584572
DoCmd.RunCommand acCmdSave
Me!Nauja_gamybos_uzduotis_ReikiaGamintSubform.Requery
Me!Nauja_gamybos_uzduotis_ItrauktaUzduotiSubform.Requery
Me!Nauja_gamybos_uzduotis_visoSubform.Requery
Me!Nauja_gamybos_uzduotis_visolaukia.Requery
'DoCmd.ShowAllRecords
End Sub

пишет, что не нашёл object... а какой object я должен сохранять??? а если жёлтое уберу, то тогда что надо сохранять.
17 янв 07, 18:28    [3656559]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
АндрейК
Member

Откуда: Москва
Сообщений: 380
Да хоть так:
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
17 янв 07, 18:42    [3656634]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
АндрейК
Member

Откуда: Москва
Сообщений: 380
и так
me.Dirty=false
17 янв 07, 18:44    [3656645]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
Спасибо, помогло!
17 янв 07, 18:51    [3656673]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
Private Sub AcceptAll_Click()
Dim ds As DAO.Recordset: Set ds = Me!Nauja_gamybos_uzduotis_ReikiaGamintSubform.Form.RecordsetClone: ds.MoveFirst
Do While Not ds.EOF
    ds.Edit
    ds("BusenosID") = 1
    ds("GamibinesUzduotiesID") = Forms![Nauja_gamybos_uzduotis]![GamibinesUzduotiesID]
    ds("SandelisID") = -660584572
    ds.Update
    ds.MoveNext
Loop
End Sub
подскажите пожалуйста, как выполнея эти измеиения их можно предать в некую таблицу?
7 фев 07, 11:14    [3748570]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
автор
подскажите пожалуйста, как выполнея эти измеиения их можно предать в некую таблицу?

' Открываете рекордсет на другую таблицу
Dim rsnew as DAO.RecordSet
' Если таблицу надо очистить перед занесением, то
CurrentDB.Execute "Delete * From NewTabl"

' Открытие рекордсета
Set rsnew = CurrentDB.OpenRecordset("Select * From NewTabl")

' Занесение новых данных в NewTabl
rsnew.Add
rsnew("BusenosID") = 1
.................
................
rsnew.Update
7 фев 07, 11:35    [3748740]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
В добовление. Я предположил, что в новой таблице поля называются также как в старой. Если не так, то просто поменять названия соответствующих полей при описании рекордсета
7 фев 07, 11:46    [3748833]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
То есть всё делать дважды? Сначала одним рекордсетом скопировать все записи из субформы в таблицу, а потом другим рекордсетом их изменить?
7 фев 07, 11:54    [3748899]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
ByKiS
То есть всё делать дважды? Сначала одним рекордсетом скопировать все записи из субформы в таблицу, а потом другим рекордсетом их изменить?
Двоного копирования нет. Можете вообще сразу писать
rsnew("BusenosID") = ds("BusenosID") 

Но поскольку вы одновременно работаете с двумя таблицами, и в каждой нужно что-то делать, то у вас возникает чувство двойного копирования. Заполнение рекордсета при чтении из таблицы не есть копирование в прямом смысле.
7 фев 07, 12:01    [3748962]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать какие поля выделены?  [new]
ByKiS
Member

Откуда:
Сообщений: 3760
Совсем запутался... У меня субформа с выбранными некоторыми записями, делаю рекордсет
Set ds = Me!Nauja_gamybos_uzduotis_ReikiaGamintSubform.Form.RecordsetClone
меняю у всех записей значение склад на новое
И надо ещё всё это записать в таблицу движение склад (то есть скопировать туда каждую запись и добавить "был склад" и "ста склад"). Это же должно быть два разных рекордсета, или я чего то не понимаю?
7 фев 07, 12:15    [3749078]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить