Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DBComboBox не видит структуру таблицы, DBComboBox не видит структуру таблицы 
:(
    Опции темы
Shokan
Дата 10.5.2007, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.5.2007

Репутация: нет
Всего: нет



почему у меня комбо бокс не видет таблицу?
вот, хотел вывести значений поле вот таким обрахом:

Код

procedure TForm1.FormActivate(Sender: TObject);
var a: Cardinal;
begin
for a:=1 to table1.RecordCount do  begin
DBListBox1.Items.Add(table1.FieldByName('name').AsString);
table1.next;
end;
end;


где их можно указать?
извеняюсь та тупой вопрос

PM MAIL   Вверх
Rodman
Дата 10.5.2007, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Shokan, а таблицу открыл?

не туда написал, тебе в Базы данных...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
skyboy
Дата 10.5.2007, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Нужны компоненты: TDBComboBox(DBComboBox1), TDataSource(DataSource1), TTable(Table1)
Надо установить:
  • Свойство DBCombobox.DataSource := DataSource1;
  • Свойство DataSource1.DataSet:= Table1;
  • Свойство Table1.Active:= True;

PM MAIL   Вверх
Shokan
  Дата 10.5.2007, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.5.2007

Репутация: нет
Всего: нет



Да, там все в порядке.
Все это сделано.
вот виды ошибок:
[Error] Unit1.pas(105): Undeclared identifier: 'departments'
[Error] Unit1.pas(105): 'DO' expected but identifier 'RecordCount' found
[Error] Unit1.pas(106): ')' expected but identifier 'FieldByName' found
[Error] Unit1.pas(106): Missing operator or semicolon
[Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas'

PM MAIL   Вверх
Rodman
Дата 10.5.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Цитата(Shokan @  10.5.2007,  09:04 Найти цитируемый пост)
[Error] Unit1.pas(105): Undeclared identifier: 'departments'

в той строке такого нет.. выложи весь код...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Shokan
Дата 10.5.2007, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.5.2007

Репутация: нет
Всего: нет



вот

Код
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Grids, DBGrids, DB, DBTables, ADODB, Buttons,
  jpeg, Menus, DBCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Edit1: TEdit;
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    Panel4: TPanel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    Image1: TImage;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N13: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    Image2: TImage;
    DBComboBox1: TDBComboBox;
    ADOQuery2: TADOQuery;
    DataSource2: TDataSource;
    Button1: TButton;
    procedure Edit1Change(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DBComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Edit1Change(Sender: TObject);
  var
    caption: String;
    i:integer;
begin
  caption:='Family';
  if RadioButton1.Checked=true then
  Caption := 'Family'
  else if RadioButton2.Checked=true then
  Caption := 'Name'
  else if RadioButton3.Checked=true then
  Caption := 'Sname'
  else if RadioButton4.Checked=true then
  Caption := 'Workphone'
  else if RadioButton5.Checked=true then
  Caption := 'Cellphone' ;

    with ADOQuery1 do begin
    Close;
    SQL.Clear;
    SQL.Text := 'select * from Personal where ' + Caption + ' like "%'+Edit1.Text+'%"';;
    //Parameters.ParamByName('v_mid').Value := Edit1.Text;
    Open;
  end;
end;

procedure TForm1.N13Click(Sender: TObject);
begin
  Form1.Close;
end;

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
Form2.Show;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Close;
  Form2.Close;
end;

procedure TForm1.DBComboBox1Change(Sender: TObject);
var a: Cardinal;
begin
for a:=1 to departments.RecordCount do  begin
DBComboBox1.Items.Add(departments.FieldByName('2').AsString);
departments.next;
end;

end.



Это сообщение отредактировал(а) Shokan - 10.5.2007, 10:59
PM MAIL   Вверх
Rodman
Дата 10.5.2007, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



ну во первый ты departments даже не обьявил

Добавлено через 2 минуты и 22 секунды
Код

procedure TForm1.DBComboBox1Change(Sender: TObject);
var a: Cardinal;
begin
for a:=1 to ADOQuery1.RecordCount do  
begin
     DBComboBox1.Items.Add(ADOQuery1.Fields[2].AsString);
     ADOQuery1.next;
end;


что так?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Shokan
Дата 10.5.2007, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.5.2007

Репутация: нет
Всего: нет



Я только начинаю этот язык. пришел с пхп.
горю желением освоится в этой среде.

при обявления откуда надо вытаскивать эти переменные?
Обясните пожалуйста

нет. вот это вот не работает
Код


procedure TForm1.DBComboBox1Change(Sender: TObject);
var a: Cardinal;
begin
  for a:=1 to ADOQuery2.RecordCount do
begin
  DBComboBox1.Items.Add(ADOQuery2.Fields[2].AsString);
  ADOQuery2.next;
end;
     end;
end.


выводит только 1-запись из этого поле

Это сообщение отредактировал(а) Shokan - 10.5.2007, 11:27
PM MAIL   Вверх
Rodman
Дата 10.5.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



ооо плин.
Код

procedure TForm1.DBComboBox1Change(Sender: TObject);
var a: Cardinal; //можно целочисленное, ну это я думаю ты понял
begin
for a:=1 to ADOQuery1.RecordCount do  // если ADOQuery открыт то в переменной RecordCount кол-во строк
begin
     DBComboBox1.Items.Add(ADOQuery1.Fields[2].AsString);//записываешь в DBComboBox 3й столбей
     ADOQuery1.next;//переходишь на следующую запись
end;


PM MAIL WWW Skype GTalk YIM MSN   Вверх
Shokan
Дата 10.5.2007, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.5.2007

Репутация: нет
Всего: нет



выходит только 1-запись всего поля:
в чем может быть дело?  smile 

Код

procedure TForm1.DBComboBox1Change(Sender: TObject);
var a: Cardinal;
begin
  for a:=1 to ADOQuery2.RecordCount do
begin
  DBComboBox1.Items.Add(ADOQuery2.Fields[2].AsString);
  ADOQuery2.next;
end;
     end;

PM MAIL   Вверх
Rodman
Дата 10.5.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



значит твоему условию
Код

SQL.Text := 'select * from Personal where ' + Caption + ' like "%'+Edit1.Text+'%"';

cоответствует только одна запись.
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Shokan
Дата 10.5.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.5.2007

Репутация: нет
Всего: нет



нет. этот комбо бокс(DBComboBox1) не имеет никого отношения к ADOQuery1.
он связывается с ADOQuery2.
а там(в ADOQuery2) написано select * from departments


PM MAIL   Вверх
Rodman
Дата 10.5.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



покажи что ты исправил...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Shokan
Дата 10.5.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.5.2007

Репутация: нет
Всего: нет



вот ваш код:
я оттуда исправил выделенные красным

Код

procedure TForm1.DBComboBox1Change(Sender: TObject);
var a: Cardinal; //можно целочисленное, ну это я думаю ты понял
begin
for a:=1 to [color=red]ADOQuery1[/color].RecordCount do  // если ADOQuery открыт то в переменной RecordCount кол-во строк
begin
     DBComboBox1.Items.Add([color=red]ADOQuery1[/color].Fields[2].AsString); //записываешь в DBComboBox 3й столбей
     [color=red]ADOQuery1[/color].next; //переходишь на следующую запись
end;


вообщем ADOQuery1 на ADOQuery2 и все.
мне надо высести на DBComboBox1 из запроса:
Код

select * from departments

поле 2

структура подключения к файлу access такая:
Код

                              ADOQuery1                    DataSource1
ADOConnection1
                              ADOQuery2                    DataSource2 вот сюда вот подключен DBComboBox1  

PM MAIL   Вверх
Rodman
Дата 10.5.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



запрос напиши полностью,
Код

select ID, NAme1, Name2 from departments

Цитата(Shokan @  10.5.2007,  11:43 Найти цитируемый пост)
поле 2

в таком случае поле 2 будет - Name2...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.