Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2013, 00:20   #1
Laonika
Новичок
Джуниор
 
Регистрация: 09.01.2013
Сообщений: 3
По умолчанию DBEdit по параметру комбобокса, не работает

Здравствуйте! Вообщем проблема такая:
база данных из 3х таблиц, нужно привязать 3й DBEdit к комбобоксу, 2 остальных работают(они из тойже таблицы, что и поле комбобокса), а вот 3й не присоединяется, не пойму в чем проблема, связь есть.
Нужно чтобы выбиралось значение в комбобоксе и все эдиты выводили значение поля соответствующее выбору комбобокса из бд.
И еще как сделать чтобы DBEditы при открытии программы были изначально пустые либо выводили заданный текст? а то они сразу заполняются 1м значением, когда еще в DBlookupComboboxe ничего не выбрал.
вот текст программы и скрины
PHP код:
bject Form1TForm1
  Left 
191
  Top 
125
  Width 
696
  Height 
375
  Caption 
'Form1'
  
Color clBtnFace
  Font
.Charset DEFAULT_CHARSET
  Font
.Color clWindowText
  Font
.Height = -11
  Font
.Name 'MS Sans Serif'
  
Font.Style = []
  
OldCreateOrder False
  PixelsPerInch 
96
  TextHeight 
13
  object DBLookupComboBox1
TDBLookupComboBox
    Left 
32
    Top 
96
    Width 
145
    Height 
21
    KeyField 
'material_detali'
    
ListField 'material_detali'
    
ListSource DataSource1
    TabOrder 
0
  end
  object DBEdit1
TDBEdit
    Left 
32
    Top 
128
    Width 
145
    Height 
21
    DataField 
'tip_obrab_poverhnosti'
    
DataSource DataSource1
    TabOrder 
1
  end
  object DBEdit2
TDBEdit
    Left 
32
    Top 
160
    Width 
145
    Height 
21
    DataField 
'material_instrumenta'
    
DataSource DataSource1
    TabOrder 
2
  end
  object DBEdit3
TDBEdit
    Left 
32
    Top 
192
    Width 
121
    Height 
21
    DataField 
'tip_instrumenta'
    
DataSource DataSource2
    ParentShowHint 
False
    ReadOnly 
True
    ShowHint 
False
    TabOrder 
3
  end
  object ADOConnection1
TADOConnection
    Connected 
True
    ConnectionString 

      
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\маша\Deskt' +
      
'op\выбор.mdb;Persist Security Info=False'
    
LoginPrompt False
    Mode 
cmShareDenyNone
    Provider 
'Microsoft.Jet.OLEDB.4.0'
    
Left 48
  end
  object ADOQuery1
TADOQuery
    Active 
True
    Connection 
ADOConnection1
    CursorType 
ctStatic
    Parameters 
= <>
    
SQL.Strings = (
      
'select * from r3')
    
Left 152
    Top 
16
  end
  object DataSource1
TDataSource
    DataSet 
ADOQuery1
    Left 
96
    Top 
56
  end
  object ADOQuery2
TADOQuery
    Active 
True
    Connection 
ADOConnection1
    CursorType 
ctStatic
    DataSource 
DataSource1
    Parameters 
= <
      
item
        Name 
'param'
        
Attributes = [paNullable]
        
DataType ftWideString
        NumericScale 
255
        Precision 
255
        Size 
510
        Value 
''
      
end>
    
SQL.Strings = (
      
        
'Select tip_instrumenta FROM r INNER JOIN r3 on r3.tip_obrab_pove' +
        
'rhnosti=r.tip_obrab_poverhnosti where r.tip_obrab_poverhnosti=:p' +
        
'aram')
    
Left 248
    Top 
184
  end
  object DataSource2
TDataSource
    DataSet 
ADOQuery2
    Left 
224
    Top 
120
  end
end 
Изображения
Тип файла: jpg схема данных.jpg (33.5 Кб, 48 просмотров)
Тип файла: jpg скрин формы.jpg (164.2 Кб, 48 просмотров)
Laonika вне форума Ответить с цитированием
Старый 09.01.2013, 18:27   #2
Laonika
Новичок
Джуниор
 
Регистрация: 09.01.2013
Сообщений: 3
По умолчанию

Подскажите, пожалуйста, завтра утром сдавать((
Laonika вне форума Ответить с цитированием
Старый 09.01.2013, 18:37   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

1. это не "текст программы", а всего лишь код формы. текст программы содержится в pas-файле
2.
Код:
 object DBEdit2: TDBEdit 
    DataSource = DataSource1 

  object DBEdit3: TDBEdit 
    DataSource = DataSource2
разницу видишь?
3.
Цитата:
чтобы DBEditы при открытии программы были изначально пустые
используй не DBEdit-ы, а обычные Edit-ы. При выборе значения с комбобокса просто ручками присваивай нужному эдиту значение нужного поля
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 09.01.2013, 19:26   #4
Laonika
Новичок
Джуниор
 
Регистрация: 09.01.2013
Сообщений: 3
По умолчанию

Тоесть мне не нужно было делать 2 ADOQuery? всё записать в 1? все поля из 3х таблиц и объединение?
я не умею прописывать значение для обычных эдитов, поэтому и использую такие)) в этих нельзя сделать пустое значение изначально?
Laonika вне форума Ответить с цитированием
Старый 09.01.2013, 19:50   #5
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

можно и Query, даже можно завязать и эдиты и комбобокс на одной квери, ничего страшного не произойдет. просто указать Edit3 и ComboBox одно и то же поле
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получаю первую букву итема из комбобокса Synapse Win Api 2 10.11.2012 15:44
2 комбобокса MaxYalunin C++ Builder 2 18.10.2012 20:18
Заполнение комбобокса alex77755 Microsoft Office Access 4 11.05.2012 10:18
Заполнение комбобокса по условию. lexx19 Microsoft Office Excel 2 08.10.2009 12:40
Вывод изображения из листбокса (комбобокса) dsapa Microsoft Office Excel 6 11.10.2008 22:58