#vba #ms-access-2016
#vba #ms-access-2016
Вопрос:
Option Compare Database
Option Explicit
Public Function Day1DU(InvFullBP As Single) As Single
Dim Current_Frm As Form
Set Current_Frm = Screen.ActiveForm
Dim CalcDuAdjs As Double, HBCO As Double, HBP As Double, AMRF As Double
Я публикую только второй раз, поэтому, пожалуйста, будьте вежливы.
Мне нужно посмотреть, есть ли значение в поле FundDate в SoldInfo_Tbl. Если поле пустое, тогда нам нужно предположить 9/1/2020. Если значение не равно null, то для запуска кода оно должно быть больше 8/31/2020.
Я никогда не искал значение таким образом. Я всегда ссылался на текущую форму.
Возникли проблемы с DAO.База данных
НЕБЛАГОПРИЯТНАЯ КОМИССИЯ ЗА РЕФИНАНСИРОВАНИЕ НА РЫНКЕ
Dim dbMyDB As DAO.Database
Dim tblSoldInfo As DAO.TableDef
Dim fldMyField As DAO.Field
Dim rs As DAO.Recordset
Set dbMyDB = CurrentDb
Set tblSoldInfo = dbMyDB![SoldInfo_Tbl]
Set fldMyField = tblSoldInfo![FundDate]
Set rs = CurrentDb.OpenRecordset("SoldInfo_Tbl", dbOpenTable)
НЕБЛАГОПРИЯТНАЯ КОМИССИЯ ЗА РЕФИНАНСИРОВАНИЕ НА РЫНКЕ
Select Case Val(Current_Frm!InvestorID_Cbo.Column(0))
Case 2, 4, 15
If Current_Frm!RateSheetDate_Txt > #8/12/2020# Then
If Current_Frm!LoanType_Cbo <> "PURCHASE" And (Current_Frm!Plan_Cbo = "10" Or Current_Frm!Plan_Cbo = "20" Or Current_Frm!Plan_Cbo = "11" Or Current_Frm!Plan_Cbo = "55" Or Current_Frm!Plan_Cbo = "71" Or Current_Frm!Plan_Cbo = "101" Or Current_Frm!Plan_Cbo = "12" Or Current_Frm!Plan_Cbo = "10H" Or Current_Frm!Plan_Cbo = "20H" Or Current_Frm!Plan_Cbo = "55H" Or Current_Frm!Plan_Cbo = "71H" Or Current_Frm!Plan_Cbo = "101H" Or Current_Frm!Plan_Cbo = "11H" Or Current_Frm!Plan_Cbo = "12H") Then
AMRF = 0.5
Else
AMRF = 0
End If
End If
Case 16, 17
Моя проблема ниже, vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
If Nz(rs![tblSoldInfo]![fldMyField], #9/1/2020#) > #8/31/2020# Then
If Current_Frm!LoanType_Cbo <> "PURCHASE" And (Current_Frm!Plan_Cbo = "10" Or Current_Frm!Plan_Cbo = "20" Or Current_Frm!Plan_Cbo = "11" Or Current_Frm!Plan_Cbo = "12" Or Current_Frm!Plan_Cbo = "10H" Or Current_Frm!Plan_Cbo = "20H" Or Current_Frm!Plan_Cbo = "11H" Or Current_Frm!Plan_Cbo = "12H") Then
AMRF = 0.5
Else
AMRF = 0
End If
End If
End Select
ПРЕКРАТИТЬ НЕБЛАГОПРИЯТНУЮ КОМИССИЮ ЗА рефинансирование НА РЫНКЕ
Комментарии:
1.
rs![tblSoldInfo]![fldMyField]
неверно. Вы обращаетесь к набору записей, поэтому вам нужно только указать имя столбца, напримерrs![FieldName]
.2. Кроме того, вам не нужно объявлять TableDef и поле, достаточно набора записей. Если вам нужно обновить, откройте as
dbOpenDynaset
и обновите.3. Спасибо @Kostas K. за помощь. У меня возникли проблемы, поэтому я продолжал добавлять больше. Я немного сошел с ума от Google.
Ответ №1:
Я, наконец, понял это. У меня разделенная база данных ms-access. Если база данных разделена, таблицы не являются локальными, и я не могу использовать OpenRecordset («SoldInfo_Tbl», dbOpenTable), я должен использовать dbOpenDynaset.