|  | 
 
 | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  БД Access Не могу считать некоторые данные из БД для дальнейшего занесения в Word. Вот с этой частью базы работаю: http://www.delphisources.ru/forum/at...d=140009331 4 Добавляю в MS WORD: Код:    //Нормально заменяет строки в WORD'е $$$Group$$$ и $$$Course$$$ на данные из таблицы
   Group:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger, 3);
   FindAndReplace('$$$Group$$$', Group);
   Course:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger, 6);
   FindAndReplace('$$$Course$$$', Course);
   //Оставляет без замены
   DateBegin:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger,10);
   FindAndReplace('$$$DateBegin$$$', DateBegin);
   DateEnd:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger, 11);
   FindAndReplace('$$$DateEnd$$$', DateEnd);Сам поиск. Код: function TDM.FindStudentInfo(ID: integer; N: integer): string;
var LookupRes: Variant; Gr: string;
begin
   if not tStudents.Active then tStudents.Open;
   LookupRes := tStudents.Lookup ('IDStudent', ID, 'Surname;Name;Patronymic;Group;State');
   if not VarIsNull(LookupRes) then
   begin
      if N>4 then
      begin
         Gr:=VarToStr(LookupRes[3]);
         if not tGroups.Active then tGroups.Open;
         LookupRes := tGroups.Lookup ('Group', Gr, 'Speciality;Course;Form;DateBegin;DateEnd');
         if not VarIsNull(LookupRes) then result:=VarToStr(LookupRes[N-5])
         else result:='';
         if (N=5) and (result<>'') then
         begin
            Gr:=result;
            if not tSpeciality.Active then tSpeciality.Open;
            LookupRes := tSpeciality.Lookup ('Code', Gr, 'Speciality;Base');
            if not VarIsNull(LookupRes) then result:=gr+' '+VarToStr(LookupRes[0])
            else result:=Gr;
         end;
      end
      else result:=VarToStr(LookupRes[N]);
   end
   else result:='';
end;Где что не так? | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Вопрос снят. Поторопился. Сидел смотрел на код минут 15.  Пока не написал на форум, не нашел ошибку   Код:    
   DateBegin:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger,8);
   FindAndReplace('$$$DateBegin$$$', DateBegin);
   DateEnd:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger, 9);
   FindAndReplace('$$$DateEnd$$$', DateEnd); | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   Дабы не создавать новой темы. Есть форма с компонентами db, все данные обрабатываются нормально помимо одного DBCombobox. Необходимо записать в БД два значения, решил организовать через boolean. Как указать, чтобы из DBCombobox брались не строки, а ItemIndex? По крайней мере при добавлении этого параметра выдает ошибку, что "Выбранная надпись не boolean" Последний раз редактировалось MotoArhangel, 15.05.2014 в 11:09. | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   А вы пробовали явно привести к Boolean? Код: Boolean(ADOQuery1.FieldByName('State').Value) | 
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
|  
MotoArhangel (15.05.2014)
 | ||
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   Спасибо. Нашел ошибку. |