2013-07-11 2 views
1

a Вопрос доступа на этот раз. У меня есть форма, привязанная к определенной таблице, и я хочу, чтобы эта форма позволяла добавлять новые записи (не редактировать или удалять), нажав кнопку «Сохранить». Первая проблема заключалась в том, что запись была обновлена ​​при редактировании текстовых полей. Решение У меня есть несколько проблемДоступ 2010 VBA вручную сохранить запись

Option Compare Database 
Option Explicit 

Private bSaveRecord As Boolean 

Private Sub btCreateRecord_Click() 
    bSaveRecord = True 
    Me.tblUMgmtUser_UserDetailsID.Value = Me.tblUMgmtUserDetails_UserDetailsID.Value 
    Me.tbSetUserHashPW = "12312" 
    Me.cbSetInitPW = True 
    DoCmd.GoToRecord , , acNext 
End Sub 

Private Sub btResetRecord_Click() 
    ResetRecord 
End Sub 

Private Sub Form_AfterUpdate() 
    bSaveRecord = False 
End Sub 

Private Sub Form_BeforeUpdate(Cancel As Integer) 
    If Not bSaveRecord Then 
     Cancel = True 
     Me.Undo 
    End If 
End Sub 

Private Sub Form_Load() 
    Me.Username.SetFocus 
    DoCmd.GoToRecord , , acNewRec 
    bSaveRecord = False 
End Sub 

Private Sub ResetRecord() 
    Dim cControl As Control 

    bSaveRecord = False 
    For Each cControl In Me.Controls 
     If cControl.Name Like "Text*" Then cControl = vbNullString 
    Next 
    Me.cbResponsible.Value = False 
    Me.Undo 
End Sub 

Задача 1: Я должен добавить скрытые текстовые поля, чтобы сохранить значения в запись я хочу быть сгенерирован автоматически

Задача 2: идентификатор колонка подсчитывает каждый раз Я открываю форму, даже если я еще не добавил запись

Вообще-то мое решение не кажется очень прочным и элегантным. Любые предложения, высоко оценили

Большое спасибо Jon

+2

У вас есть возможность создания формы и изменения ввода данных для да в свойствах формы? Это откроет пустую форму и только позволит добавлять дополнения. – Grant

ответ

1

Вы связывании формы ввода данных непосредственно в целевой таблице. В результате, когда пользователь вводит данные, они непосредственно редактируют таблицу, включая создание новых записей. Вот почему автоинкремент ID (потому что пользователь сразу создает новые записи). Ваша текущая частичная работа заключается в использовании скрытых текстовых полей для хранения значений.

Ваша цель формы ввода данных звучит как обычный сценарий. Попробуйте следующее:

  1. Во-первых, НЕ устанавливайте целевую таблицу в качестве источника вашей формы. Оставьте исходный код пустым и все ваши поля не связаны. Поскольку они теперь разделены, пользователь не может редактировать существующие записи или добавлять новые, просто вводя данные. На самом деле ничего не произойдет, если пользователь просто войдет в данные и затем закрывает форму.

  2. Вперед и сделайте кнопку «Сохранить». Эта кнопка будет проверять данные, чтобы убедиться, что это то, что вы хотите, затем создайте и выполните запрос SQL Insert, чтобы добавить данные в целевую таблицу.

+0

Я боялся, что мне нужно будет так. Спасибо, я возьму такой подход – JonBlumfeld

Смежные вопросы