|
Тема
|
Въпрос за Access
|
|
Автор | Hoв (Нерегистриран) |
Публикувано | 24.11.06 21:53 |
|
Помогнете ми в един проблем който искам да реша. Аз сега изучавам Access и въпроса може и да ви се стори елементарен но за мене не е.
Как да направя така че когато въвеждам текст в едно поле този текст да остане в следващите записи докато не се промени. Попълвам данните чрез форма.
Благодаря ви предварително!
| |
Тема
|
Re: Въпрос за Access
[re: Hoв]
|
|
Автор | ju (Нерегистриран) |
Публикувано | 27.11.06 08:40 |
|
Ще ти дам само идея, която ми идва първо на ум. Можеш в хедера на формата да поставиш едно unbound поле т.е. не свързано с поле от таблица напр. нека се казва TextDef и в него да въвеждаш текста. Във полетата от формата в които искаш да се записва този текст в Default value поставяш =TextDef.
Можеш да разшириш задачката като вместо обикновенно текстово поле поставиш комбо бокс , който показва съдържанието на полето от таблицата (групирано разбира се). Така няма да се налага да пишеш , а само ще избираш . Когато въведеш нещо което го няма в таблицата , на събитието On Not In List първо го добавяш на нов ред в таблицата. Ако те затрудни ще ти покажа как става . Погледни в примерната база Solution.mdb има примери от които лесно се учи.
| |
Тема
|
Re: Въпрос за Access
[re: ju]
|
|
Автор | Hoв (Нерегистриран) |
Публикувано | 27.11.06 10:06 |
|
Благодаря ти. Тъй като сега се запознавам с Access и не ми е ясен начина на писане на макроси и механизма им на взаимодействие с таблицццата ще те попитам да ли е възможно да се дефинира една променлива която е от същия тип на полето и в началото да сочи към null или някаква стойност по подразбиране. След въвеждане на данни в това поле тя да приема тази стойност и при следващ запис тази стойност да се зарежда в полето автоматично от тази променлива. А това с комбо бокс ще го пробвам да ли ще ми върши работа.
| |
Тема
|
Re: Въпрос за Access
[re: Hoв]
|
|
Автор | ju (Нерегистриран) |
Публикувано | 27.11.06 12:20 |
|
Да може и така да се направи, ако имаш някакви стандартни стойности за въвеждане и които можеш да избираш по някакъв критерий, т. е. без има поле за въвеждане. Ако има поле за въвеждане във форма, въвеждаш текст, запазваш го в променлива и след това променливата я присвояваш на друго поле , просто удължаваш процеса с една операция.
Но идеята може да се използува за глобална променлива . Във форма 1 въвеждаш текст , запазваш го в глобалната променлива , затваряш форма 1 . Във форма 2 използуваш глобалната променлива за въвеждане на данни.Има следния недостатък , че при съобщение за грешка променливата губи стойността си и т.к форма 1 е вече затворена няма да знаеш какво е било въведено.
Един съвет : избягвай да пишеш макроси. С код е много по-прегледно.
| |
Тема
|
Ей така ще стане
[re: Hoв]
|
|
Автор | Лили (Нерегистриран) |
Публикувано | 07.12.06 10:54 |
|
Имаш една таблица за съхраняване на променлива. Нита тоблицата се нарича tbl_Properties_Local със следната структура
PropertyName text 50 No Duplicates
PropertyValue text 255
Нека PropertyName=Var1
В момента в който пишеш в полето трябва да се задейства едно събитие AfterUpdate което да запише променливата Var1 в таблицата.
Това може да стане така:
' Запомни последната стойност
Call PropertiesWrite("Var1", CStr(Me!Var1))
Самата функция PropertiesWrite може да изглежда така:
Function PropertiesWrite(strPropertyName As String, _
strPropertyValue As String) As Integer
On Error GoTo PropertiesWrite_ErrHandler
' This function writes the specified property value out to the properties table.
Dim conConnection As ADODB.Connection
Dim StrSQL As String
Set conConnection = CurrentProject.Connection
conConnection.CursorLocation = adUseServer
StrSQL = " UPDATE [tbl_Properties_Local] " & _
" SET [PropertyValue] = " & conQuote & strPropertyValue & conQuote & _
" WHERE [PropertyName] = " & conQuote & strPropertyName & conQuote
conConnection.Execute StrSQL, iAffected, adExecuteNoRecords
WrapUp:
conConnection.Close
Exit_PropertiesWrite:
Set conConnection = Nothing
Exit Function
PropertiesWrite_ErrHandler:
Call LogMsgError(Err.Description, Err.Number, ModuleName$, "PropertiesWrite")
Resume Exit_PropertiesWrite
End Function
След като последната стойност е въведена в таблицата тя може да се чете с друга функция. Необходимо е да се подбере и подходящо събитие кога да става това така, че въвеждащия да не се налага да го прави.
Ами това е. Тези работи ги ползвам много и за това реших да споделя. Айде всичко добро.
| |
|
|
|
|