       | 
  
   
     
     | 
    Форум: 
      Soft & Warez       
      все о программах, новых и старых     | 
  
   
    
      | 
     
      венн_BDS2005      : 
      Delphi        
             | 
  
  
    | 
     | 
    венн_BDS2005 
       
      09.12.06 23:14     | 
    
            >AndrЮshkA 
Данные в запросе редактировать можно, только после редактирования данных необходимо выполнять .Post для Dataset, чтобы эти данные были внесены в БД          | 
  
  
    | 
     | 
    AndrЮshkA 
       
      10.12.06 02:02     | 
    
            А сделать чтоб редактируя данные в тейбле они и в таблице охранялись?          | 
  
  
    | 
     | 
    AndrЮshkA 
       
      10.12.06 02:08     | 
    
            Query1.Close; 
S:='SELECT * From Продажа Where'; 
if combobox2.Text<>'' then s:=s+' Район ='+'"'+Combobox2.Text+'"'else s:=s+' Район  = "Центр" or Район = "СЗР" or Район = "ЮЗР" or Район = "НЮР" or Район = ""'; 
if edit2.Text<>'' then s:=s+' and Адрес='+'"'+Edit2.Text+'"'; 
if edit3.Text<>'' then s:=s+' and Количество комнат='+Edit3.Text; 
if Combobox1.Text<>'' then s:=s+' and Тип='+'"'+Combobox1.Text+'"'; 
if Combobox3.Text<>'' then s:=s+' and Планировка='+'"'+Combobox3.Text+'"'; 
if (edit1.Text<>'') and (EDit2.Text<>'') then s:=s+' and Площадь BETWEEN '+ edit1.Text+' and '+edit5.Text; 
if edit2.Text<>'' then s:=s+ ' and  Представитель='+'"'+Edit6.Text+'"'; 
if (edit21.Text<>'') and (EDit22.Text<>'') then s:=s+' and Цена BETWEEN '+ edit21.Text+' and '+edit22.Text; 
Query1.SQL.Text:=s; 
Query1.Open; 
 
почему при таком запросе если комбобокс2 пустой, а в каком нить другом поле есть текст, он мне ничего не выдает? хотя все варианты первой переменной описаны?  
мда, не умею я вопросы задавать          | 
  
  
    | 
     | 
    AndrЮshkA 
       
      10.12.06 02:16     | 
    
            и еще))) 
Как ты в ворд выводишь данные? )) 
я нашел как просто таблицу вывести, все работает, но кривовато          | 
  
  
    | 
     | 
    венн 
       
      13.12.06 08:54     | 
    
      AndrЮshkA: (10.12.06 02:02) А сделать чтоб редактируя данные в тейбле они и в таблице охранялись?       Вот, для того, чтобы изменения в ADOTable сохранились в таблице базы, надо выполнить Post :)          | 
  
  
    | 
     | 
    венн 
       
      13.12.06 09:32     | 
    
      AndrЮshkA: (10.12.06 02:08) Query1.Close; 
S:='SELECT * From Продажа Where'; 
if combobox2.Text<>'' then s:=s+' Район ='+'"'+Combobox2.Text+'"'else s:=s+' Район  = "Центр" or Район = "СЗР" or Район = "ЮЗР" or Район = "НЮР" or Район = ""'; 
if edit2.Text<>'' then s:=s+' and Адрес='+'"'+Edit2.Text+'"'; 
if edit3.Text<>'' then s:=s+' and Количество комнат='+Edit3.Text; 
if Combobox1.Text<>'' then s:=s+' and Тип='+'"'+Combobox1.Text+'"'; 
if Combobox3.Text<>'' then s:=s+' and Планировка='+'"'+Combobox3.Text+'"'; 
if (edit1.Text<>'') and (EDit2.Text<>'') then s:=s+' and Площадь BETWEEN '+ edit1.Text+' and '+edit5.Text; 
if edit2.Text<>'' then s:=s+ ' and  Представитель='+'"'+Edit6.Text+'"'; 
if (edit21.Text<>'') and (EDit22.Text<>'') then s:=s+' and Цена BETWEEN '+ edit21.Text+' and '+edit22.Text; 
Query1.SQL.Text:=s; 
Query1.Open; 
 
почему при таком запросе если комбобокс2 пустой, а в каком нить другом поле есть текст, он мне ничего не выдает? хотя все варианты первой переменной описаны?  
мда, не умею я вопросы задавать       а ты попробуй для:    
    
if combobox2.Text<>'' then s:=s+' Район    
='+'"'+Combobox2.Text+'"'else s:=s+' Район =    
"Центр" or Район = "СЗР" or Район = "ЮЗР" or Район =  
 "НЮР" or Район = ""';    
    
использовать, например, такое:    
    
if combobox2.Text<>'' then s:=s+' Район    
='+'"'+Combobox2.Text+'"'else s:=s+' Район LIKE ''*''';    
    
где как, но по-моему именно * надо ставить в качестве подстановочного знака, либо знак процента LIKE ''%'''  
    
заметь, что ''*''' - там используются только апострофы, а не кавычки с апострофом          | 
  
  
    | 
     | 
    венн 
       
      13.12.06 10:00     | 
    
      AndrЮshkA: (10.12.06 02:16) и еще))) 
Как ты в ворд выводишь данные? )) 
я нашел как просто таблицу вывести, все работает, но кривовато       можешь с экселем поэкспериментировать :) 
вот из рабочей программы код: 
 
var 
  Excel, ExcelBook, ExcelSheet: OleVariant; 
  RowCount, i: integer; 
 
begin 
//Запускаем Эксель 
  Excel := CreateOleObject('Excel.Application'); 
  Excel.Visible := true; 
  ExcelBook := Excel.Workbooks.Add; 
  ExcelSheet := ExcelBook.Sheets[1]; 
//Начинаем заполнять прайс 
  with mdlMain.qryMain do begin 
    First; 
    RowCount:=1; 
    while not EOF do begin 
      ExcelSheet.Cells[RowCount,1].Value := Fields[4].AsVariant; 
      ExcelSheet.Cells[RowCount,2].Value := Fields[6].AsString; 
      ExcelSheet.Cells[RowCount,3].Value := Fields[8].AsString; 
      ExcelSheet.Cells[RowCount,4].Value := Fields[13].AsString; 
      ExcelSheet.Cells[RowCount,5].Value := Fields[17].AsString+'  '; 
        ExcelSheet.Cells[RowCount,5].HorizontalAlignment:=4; 
      ExcelSheet.Cells[RowCount,6].Value := Fields[22].AsString; 
      ExcelSheet.Cells[RowCount,7].Value := Fields[19].AsCurrency; 
      Next; 
      RowCount:=RowCount + 1; 
    end; 
  end; 
  //Изменение размеров ячеек 
  ExcelSheet.Columns[1].ColumnWidth := 15; 
  ExcelSheet.Columns[2].ColumnWidth := 15; 
  ExcelSheet.Columns[3].ColumnWidth := 20; 
  ExcelSheet.Columns[4].ColumnWidth := 30; 
  ExcelSheet.Columns[5].ColumnWidth := 15; 
  ExcelSheet.Columns[6].ColumnWidth := 15; 
  ExcelSheet.Columns[7].ColumnWidth := 15; 
... 
  ExcelSheet.Range['A6:G6'].Select; 
  Excel.Selection.Borders[8].LineStyle := 0; 
  Excel.Selection.Borders[8].Weight := 3; 
  Excel.Selection.Borders[8].ColorIndex := 0; 
... 
  //Установки страницы печати 
  ExcelSheet.PageSetup.Orientation := 2; 
  ExcelSheet.PageSetup.Zoom := 95; 
  ExcelSheet.Protect(True,True,True); 
 
Вооот.:)) объектную модель экселя, равно как и ворда, можешь посмотреть в справке по VBA к данным приложениям.. 
да и вообще - неплохо было бы тебе в VBA заглянуть, да посмотреть - как там работают с раличными объектами. 
 
в данном примере используется метод позднего связывания... 
 
можно, конечно, воспользоваться палитрой компонентов Servers, но мне это не нравится...          | 
  
  
    | 
     | 
    AndrЮshkA 
       
      14.12.06 18:02     | 
    
      венн: (13.12.06 10:00) можешь с экселем поэкспериментировать :) 
вот из рабочей программы код: 
 
var 
  Excel, ExcelBook, ExcelSheet: OleVariant; 
  RowCount, i: integer; 
 
begin 
//Запускаем Эксель 
  Excel := CreateOleObject('Excel.Application'); 
  Excel.Visible := true; 
  ExcelBook := Excel.Workbooks.Add; 
  ExcelSheet := ExcelBook.Sheets[1]; 
//Начинаем заполнять прайс 
  with mdlMain.qryMain do begin 
    First; 
    RowCount:=1; 
    while not EOF do begin 
      ExcelSheet.Cells[RowCount,1].Value := Fields[4].AsVariant; 
      ExcelSheet.Cells[RowCount,2].Value := Fields[6].AsString; 
      ExcelSheet.Cells[RowCount,3].Value := Fields[8].AsString; 
      ExcelSheet.Cells[RowCount,4].Value := Fields[13].AsString; 
      ExcelSheet.Cells[RowCount,5].Value := Fields[17].AsString+'  '; 
        ExcelSheet.Cells[RowCount,5].HorizontalAlignment:=4; 
      ExcelSheet.Cells[RowCount,6].Value := Fields[22].AsString; 
      ExcelSheet.Cells[RowCount,7].Value := Fields[19].AsCurrency; 
      Next; 
      RowCount:=RowCount + 1; 
    end; 
  end; 
  //Изменение размеров ячеек 
  ExcelSheet.Columns[1].ColumnWidth := 15; 
  ExcelSheet.Columns[2].ColumnWidth := 15; 
  ExcelSheet.Columns[3].ColumnWidth := 20; 
  ExcelSheet.Columns[4].ColumnWidth := 30; 
  ExcelSheet.Columns[5].ColumnWidth := 15; 
  ExcelSheet.Columns[6].ColumnWidth := 15; 
  ExcelSheet.Columns[7].ColumnWidth := 15; 
... 
  ExcelSheet.Range['A6:G6'].Select; 
  Excel.Selection.Borders[8].LineStyle := 0; 
  Excel.Selection.Borders[8].Weight := 3; 
  Excel.Selection.Borders[8].ColorIndex := 0; 
... 
  //Установки страницы печати 
  ExcelSheet.PageSetup.Orientation := 2; 
  ExcelSheet.PageSetup.Zoom := 95; 
  ExcelSheet.Protect(True,True,True); 
 
Вооот.:)) объектную модель экселя, равно как и ворда, можешь посмотреть в справке по VBA к данным приложениям.. 
да и вообще - неплохо было бы тебе в VBA заглянуть, да посмотреть - как там работают с раличными объектами. 
 
в данном примере используется метод позднего связывания... 
 
можно, конечно, воспользоваться палитрой компонентов Servers, но мне это не нравится...       вот эт нужное)) а с остальным я сам разобрался))  
правда я и в ворд нашел как закидывать))          | 
  
  
    | 
     | 
    AndrЮshkA 
       
      14.12.06 19:27     | 
    
            CreateOleObject - не знаю такую штуку говорит(( может там какие библиотеки надо прописать?!          | 
  
  
    | 
     | 
    AndrЮshkA 
       
      14.12.06 19:35     | 
    
            а нашел че нехватает)) все работает)          | 
  
   
     
             |