Access Помощ

9 отговора 0 прегледа
#1

Access Помощ

Имам следния въпрос - може ли от една заявка(query1) да се взема стойността на едно поле (DO) и да се изписва в textbox (text31) в една форма от която заявката чете информация. Пробвах с SQL но нещо не се получава кода които написах е : INSERT INTO form1 (text31) SELECT DO, FROM query1; не сам сигурен дали може да се направи това с SQL ,може да е процедура или модул но незнам как точно става ,ако някой може да ми помогне ще сам му много благодарен

Отговор
в отговор на dokobg #2

Re: Access Помощ

с insert into няма да стане виж със select да
а и заявката ти не е правилно построена
от къде взимаш информация каква стойност трябва да има в текст бокса

Отговор
в отговор на bate ivan #3

Re: Access Помощ

Query-то чете информацията от combp box-ове който се намират в form1, които пък са свързани таблици в заявкат за да може да се правят изчисления по зададени параметри. и аз искам от вече готовата заявка която си работи без пробем да направя така че едно от полетата и (числово) да връза стойността в формата в текстова кутия - DO ,пробвах с SQL но нестава нещо иби аз сам го объркал, и желая някой да ми помогне

Отговор
в отговор на dokobg #4

Re: Access Помощ

Уф, или аз съм тъп или не обясняваш като хората.
1.Формата вързана ли е към тва query или не
2. Ако става на въпрос да четеш от друга таблица, то точно кой запис ти треба?Или цялата ще я напъхаш в полето?
Между другото нещо сериозно на access без да попишеш из модулите или в самите форми едва ли ще стане.
ето ти пример който би трябвало да ти свърши работа, само го слагаш на което ти трябва събитие, например на бутон-клик

dim d as database, rs as recordset
set d=currentdb() или ако не е текущата set d=opendatabase("xxxx.mdb")
set rs=d.openrecordset("query1",dbopendynaset)
тук вместо query1 можеш да си сложиш SQL кода на заявката, ама трябва да е SELECT заявка ,ако изкаш да пускаш изпълнима заявка синтаксиса е d.execute(SQL)

rs.movefirst - взема първия запис
ако ти трябва определен запис или включваш в SQL-a клауза WHERE или така:
rs.findfirst "DO = " & на еди кво си ( ако е string слагаш и кавички!)
изобщо от тук нататък вариани бол - прочети хелпа

form1.text31.text=rs!DO - записва информацията в полето
rs.close
d.close

Отговор
в отговор на Bob #5

Re: Access Помощ

ето го модула които си направих :

Sub TesttextBox()
Dim d As Database, rs As Recordset
Set d = CurrentDb()
Set rs = d.openrecordset("query1", dbopendynaset)
rs.MoveFirst
form1.DO1 = rs!DO
rs.Close
d.Close
End Sub


просто искам - от query1 стойността на полето DO да се копира или прехвърли или присвои в form1 полето DO1, но нестава с това горе, кажете как подялите да го направя това вече 4 дена само това мисля и невърви наникъде

Отговор
в отговор на dokobg #6

Re: Access Помощ

Извинявай за тъпия въпрос, ама викаш ли изобщо тази процедура?
сложи един бутон във формата и на свойството му On Click я извикай или просто я копирай (без първия и последния ред естествено) на EventProcedure

Sub TesttextBox()
Dim d As Database, rs As Recordset
Set d = CurrentDb()
Set rs = d.openrecordset("query1", dbopendynaset)
rs.MoveFirst
msgbox "Стойността на DO e: " & rs!DO ' за проверка
form1.DO1 = rs!DO
rs.Close
d.Close
End Sub

Отговор
в отговор на Bob #7

Re: Access Помощ

да викав я ,но дава грешка

Compile Error :
User-define type not defined

на реда d As Database
апък по долу е дефинирано защо я дава сега пък тази грешка ?

Отговор
в отговор на dokobg #8

Re: Access Помощ

иди на Tools->references и виж дали има отметка на Microsoft DAO 3.6(3.5) object library. Ако няма - сложи я и за всеки случаи направи следното

dim d as DAO.database, rs as DAO.recordset

Отговор
в отговор на BOB #9

Re: Access Помощ

сега пък ми дава тази грешка

Run-time Error 3061

в този ред :

Set rs = d.OpenRecordset("query1", dbopendynaset)

как да се справя и с това? направо сам на прага да се откажа ако не беше ти

Отговор
в отговор на dokobg #10

Re: Access Помощ

Намери си книжка да четеш -- да се учиш във форумите е мъка.

По-добре се насочи към ADO (ActiveX Data Objects)

cheers,
</wqw>

Отговор