powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Дата из формы для запроса
15 сообщений из 15, страница 1 из 1
Дата из формы для запроса
    #34501908
snowdeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итак, нужно собственно вот чего. В форме в текстовое поле ввожу дату, жму кнопочку ОК, по клику которой выполняется вот чего:
создается запрос к базе данных что-то вроде
select * from tablica1 where chislo=...
и вот где число, туда надо подставить значение нашего текстового поля. ну грубо говорят текстовое поле зовется text1. по сути надо написать
select * from tablica1 where chislo=thisform.text1.value
но работать оно конечно же не будет, т.к. дату надо писать вида
chislo={^year-month-day}
как быть? выручите плз... очень надо. какие пути решения могут быть? поиском рылся, но ничего подобного не нашел... Заранее огромнейшее спасибо всем!
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34501955
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
немного не понимаю, но кажется все проще чем Вы думаете

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show
RETURN


	**************************************************
DEFINE CLASS form1 AS form


	DoCreate = .T.
	Caption = "Form1"
	*-- XML Metadata for customizable properties
	_memberdata = ""
	Name = "Form1"


	ADD OBJECT command1 AS commandbutton WITH ;
		Top =  144 , ;
		Left =  156 , ;
		Height =  27 , ;
		Width =  84 , ;
		Caption = "Command1", ;
		Name = "Command1"


	ADD OBJECT text1 AS textbox WITH ;
		Height =  23 , ;
		Left =  144 , ;
		Top =  84 , ;
		Width =  100 , ;
		Name = "Text1"


	PROCEDURE Load
		create cursor tt (id i autoinc, d d)
		for i= 1  to  10 
			insert into tt (d) values (date()-i)
		endfor
	ENDPROC


	PROCEDURE Init
		set date british 
		this.text1.Value = date()
	ENDPROC


	PROCEDURE command1.Click
		LOCAL ldDate 
		ldDate = thisform.text1.Value
		select * from tt where d=ldDate
	ENDPROC


ENDDEFINE
*
*-- EndDefine: form1
**************************************************
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34501968
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
но работать оно конечно же не будет, т.к. дату надо писать вида
chislo={^year-month-day}

И кто ж это вам такую чушь сказал?

В общем-то, данные надо хранить не в контролах, а в полях таблиц/курсоров или в переменных. А вот контролы к ним и привязывать с помощью ControlSource. И тогда задача решается очень просто.

Допустим, у нас есть переменная lcDate, содержащая некую дату, именно дату, в формате Date или DateTime, и текстбокс txtDate, привязанный к этой переменной. То есть txtDate.ControlSource = lcDate

В этом случае решение сводится к простейшему виду:

Код: plaintext
select * from tablica1 where chislo=?lcDate
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502004
snowdeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PROCEDURE command1.Click
LOCAL ldDate
ldDate = thisform.text1.Value
select * from tt where d=ldDate

ну это тоже самое, что я и пытаюсь сделать... и выдает ошибку
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502015
snowdeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, у нас есть переменная lcDate, содержащая некую дату, именно дату, в формате Date или DateTime, и текстбокс txtDate, привязанный к этой переменной. То есть txtDate.ControlSource = lcDate

как раз таки немного не так... наоборот мне надо, чтобы переменная lcDate брала в себя значение, введенное в txtDate...
т.е. грубо говоря надо lcDate=txtdate.value
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502034
snowdeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а вот если я напишу вручную дату в запрос, а не буду брать значение формы, то все получается, т.е. если я напишу
select * from tablica where chislo={^2007/12/30}
сделаю browse, то я увижу все записи, у которых число соответствует 30/12/2007
надо тоже самое, только вот число не вручную вписывать, а брать его значение из text1.value
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502047
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
snowdeath

танцы с бубном на пустом месте

определитесь пожалуйста что там в переменной - дата или строка

Вы именуете lcDate - это что строка

Вы вводите строку?????
Вы желаете контролировать правильность ввода??? дат??? сами????

автори выдает ошибку

какую???

в таблице дата???
в переменной что???
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502048
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну - в конструкторе формы в свойстве Value того текстового поля, в которое вводится дата, пропишите {..} и будет щастье ...
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502052
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
snowdeathPROCEDURE command1.Click
LOCAL ldDate
ldDate = thisform.text1.Value
select * from tt where d=ldDate

ну это тоже самое, что я и пытаюсь сделать... и выдает ошибкуУ тебя ошибка идет, т.к. скорее всего поле text1 - действительно текстовое значение. Посмотри как тебе описал alex11100
Код: plaintext
this.text1.Value = date()
Здесь у него поле имеет тип даты. И уже в процедуре нажатия кнопки переменная ldDate - имеет тип дата.
Код: plaintext
1.
2.
3.
4.
PROCEDURE command1.Click
		LOCAL ldDate 
		ldDate = thisform.text1.Value
		select * from tt where d=ldDate
ENDPROC
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502075
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, у нас есть переменная lcDate, содержащая некую дату, именно дату, в формате Date или DateTime, и текстбокс txtDate, привязанный к этой переменной. То есть txtDate.ControlSource = lcDate

как раз таки немного не так... наоборот мне надо, чтобы переменная lcDate брала в себя значение, введенное в txtDate...
т.е. грубо говоря надо lcDate=txtdate.value

Батенька, если б Вы потрудились немного подучить матчасть, то узнали бы, что написанное мной работает именно так как Вам надо, то есть при вводе информации в контрол эта самая информация попадает в тот самый элемент для хранения данных(поле или переменная)), к которому контрол привязан.
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502079
snowdeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в таблице дата =). сделать строку, чтобы все прокатило?
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502090
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Sergey Sizov

lc - строка
ld - дата
lt - ...
ll
ln
lu ....

давайте придерживаться в примерах нотации
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502098
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
snowdeath


упертый

Вы желаете в текстбоксе вводить строку????
как Вы желаете контролировать правильность ввода даты???

пользователь ввел
5555.4444.44444

хорошо,
читайте в хелпе про ctod()
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502112
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Alex11100

Ну давайте, так и быть. :)

В моем примере lcDate читать как ldDate.
...
Рейтинг: 0 / 0
Дата из формы для запроса
    #34502174
snowdeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex11100snowdeath


упертый

Вы желаете в текстбоксе вводить строку????
как Вы желаете контролировать правильность ввода даты???

пользователь ввел
5555.4444.44444

хорошо,
читайте в хелпе про ctod()

Нет, я желаю вводить туда ДАТУ. вручную контролировать ввод даты не хочу =) я только понять не могу ничерта...
в процедуру init вписал:
thisform.text1.value=date()

в click написал:
local lddate
lddate=thisform.text1.value
select * from tbl1 where chislo=lddate

заработало. до этого я просто не писал в процедуру init
thisform.text1.value=date()

спасибо всем огромнейшее =)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Дата из формы для запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]