LuckyELF
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вот код: Private Sub Form_Open(Cancel As Integer) On Error GoTo Err_Form_Open Dim sFind_SQL, sID_CHECK Dim cn As ADODB.Connection Dim rs As ADODB.Recordset If IsNull(Forms!fmEDIT_CHECK.OpenArgs) Then DoCmd.Close Exit Sub End If sID_CHECK = Forms!fmEDIT_CHECK.OpenArgs sFind_SQL = "SELECT T_CHECK.ID_CHECK, T_CHECK.ALT_NUMBER, R_CHECK_DIR.CHECK_DIR_NAME, " & _ "R_CHECK_TYPE.CHECK_TYPE_NAME, T_CHECK.BEG_PROV_PERIOD, T_CHECK.END_PROV_PERIOD, " & _ "T_CHECK.BEG_PROV_DATE, T_CHECK.END_PROV_DATE, T_CHECK.PRIKAZ_N, T_CHECK.PRIKAZ_DATE, " & _ "T_CHECK.INFO_DATE, T_CHECK.OUT_DATE " & _ "FROM R_CHECK_DIR INNER JOIN " & _ "(R_CHECK_TYPE INNER JOIN T_CHECK ON R_CHECK_TYPE.ID_CHECK_TYPE = T_CHECK.ID_CHECK_TYPE) " & _ "ON R_CHECK_DIR.ID_CHECK_DIR = T_CHECK.ID_CHECK_DIR " & _ "WHERE T_CHECK.ID_CHECK = " & sID_CHECK Set rs = New ADODB.Recordset Set cn = Application.CurrentProject.Connection rs.Open sFind_SQL, cn, adOpenStatic, adLockOptimistic If (rs.RecordCount <= 0) Then If rs.State = adStateOpen Then rs.Close Set rs = Nothing Set cn = Nothing DoCmd.Close Exit Sub Else Me!Edit_Number.Value = rs.Fields(0).Value ' ID Me!Edit_Number.Enabled = False Me!Edit_AltNumber.Value = rs.Fields(1).Value Me!Edit_AltNumber.Enabled = False Me!ComboBox_CheckDir.Value = rs.Fields(2).Value Me!ComboBox_CheckDir.Enabled = False Me!btnCheckDir.Enabled = False Me!ComboBox_CheckType.Value = rs.Fields(3).Value Me!ComboBox_CheckType.Enabled = False Me!btnCheckType.Enabled = False Me!Edit_BegPer.Value = rs.Fields(4).Value Me!Edit_BegPer.Enabled = False Me!Edit_EndPer.Value = rs.Fields(5).Value Me!Edit_EndPer.Enabled = False Me!Edit_BegProv.Value = rs.Fields(6).Value Me!Edit_BegProv.Enabled = False Me!Edit_EndProv.Value = rs.Fields(7).Value Me!Edit_EndProv.Enabled = False Me!Edit_PrikazN.Value = rs.Fields(8).Value Me!Edit_PrikazN.Enabled = False Me!Edit_Prikaz_Date.Value = rs.Fields(9).Value Me!Edit_Prikaz_Date.Enabled = False Me!Edit_InfoDate.Value = rs.Fields(10).Value Me!Edit_Out_Date.Value = rs.Fields(11).Value Me!Edit_Out_Date.Enabled = False Me!ListBox_CheckUsers.RowSource = "SELECT A.ID_CHECK_USER, A.ID_CHECK, A.ID_USER, B.NAME1, B.NAME2, B.NAME3, B.JOB_TITLE " & _ "FROM T_CHECK_USER A, T_USERS B " & _ "WHERE A.ID_USER = B.ID_USER AND A.ID_CHECK = " & sID_CHECK Me!ListBox_TB.RowSource = "SELECT A.ID_TB_LINK, A.ID_CHECK, A.TB_INDEX, B.TB_NAME, B.TB_NAME & ( & A.TB_INDEX & )" & _ "FROM T_TB_LINK A, R_TB B " & _ "WHERE A.TB_INDEX = B.TB_INDEX AND A.ID_CHECK = " & sID_CHECK 'SELECT [T_TB_LINK].[ID_TB_LINK], [T_TB_LINK].[ID_CHECK], [T_TB_LINK].[TB_INDEX] FROM [T_TB_LINK] End If Err_Form_Open: If rs.State = adStateOpen Then rs.Close Set rs = Nothing Set cn = Nothing End Sub Пытаюсь сформировать строку для поиска в БД, сформированную строку пишу в sFind_SQL. По логике должно все работать, но на практике вылетает ошибка. Прошелся в отладчике, выяснил, что сформированная строка должна быть >255 символов, но реально она 255, в итоге получается ошибка. Вопрос: как объявиться переменную типа String для хранения строк более 255 символов? |