| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Въпрос за ACCESS http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=9905 |
Страница 1 от 2 |
| Автор: | E1 [ Сря Фев 22, 2012 10:45 pm ] |
| Заглавие: | Въпрос за ACCESS |
Налага ми се да направя едно поддържане на база от данни. Базата от данни създадох-таблици и релационни връзки, но имам сериозен проблем относно диалога за управлението. Как може да се направи излизащ диалогов прозорец, в който като въведа, например номер на клиент и номер на заявка, да направи проверка в таблицата със заявките, дали срещу този клиент е записана тази заявка? Със "справки" ли става това или трябва да се ползва нещо друго(например да се прави апликация във VB, която да управлява базата от данни)? |
|
| Автор: | Реконструктор [ Чет Фев 23, 2012 2:22 am ] |
| Заглавие: | Re: Въпрос за ACCESS |
Да, за интрефейс трябва да ползваш VBA (visual basic for applications). |
|
| Автор: | E1 [ Чет Фев 23, 2012 12:36 pm ] |
| Заглавие: | Re: Въпрос за ACCESS |
Благодаря! Така си и помислих, но нямам опит с Access-а. |
|
| Автор: | E1 [ Пет Фев 24, 2012 2:20 pm ] |
| Заглавие: | Re: Въпрос за ACCESS |
Честно казано, не мога да схвана как точно трябва да въведа кода в таблиците. Трябва ми, например, следното: Имаме Table1 и Table2. Ако някъде в Table1 Поле2 и Поле3 имат съответни стойности с Поле2 и Поле3 на Table2(за всяка таблица -в рамките на един запис - т.е. на един ред), то в Поле4(на съответния ред) на Table2 да се запише "1". |
|
| Автор: | ДедоБоре [ Пет Фев 24, 2012 2:54 pm ] |
| Заглавие: | Re: Въпрос за ACCESS |
що не започнеш с някой туториал, после с по-сериозна книжка и накрая дебела книга за аксеса (ако изобщо има смисъл точно от този "продукт") |
|
| Автор: | raven_feather [ Пет Фев 24, 2012 7:09 pm ] |
| Заглавие: | Re: Въпрос за ACCESS |
Трябва ти някоя книжка за Visual Basic for Applications.И интернет има доста , но напоследък взеха да изчезват тези сайтове |
|
| Автор: | E1 [ Съб Фев 25, 2012 2:58 am ] |
| Заглавие: | Re: Въпрос за ACCESS |
Проблемът е по-скоро с Access-а. Но намерих примери и напредвам. |
|
| Автор: | E1 [ Сря Фев 29, 2012 11:35 pm ] |
| Заглавие: | Re: Въпрос за ACCESS |
Почти всичко успях да направя(оказа се доста по-обемно от планираното). Остана само един проблем: Необходимо е да се търси съдържание "Х" в поле "Y" и след като се открие, целият запис да се прехвърли в отделни TextBox. Например: Ако в полето(колоната) се търси "1", след като се намери, цялото съдържание на записа(реда), да се запише в TextBox1 - TextBox3: поле1 (1) -> TextBox1 съдържание на поле вдясно->TextBox2 съдържание на последно поле-> TextBox3 поле 1 е първичен ключ. Т.е. няма два записа, които да покриват този критерий. |
|
| Автор: | CarBeta [ Чет Мар 01, 2012 1:30 am ] | ||||||||||||||||||
| Заглавие: | Re: Въпрос за ACCESS | ||||||||||||||||||
Примерно...
|
|||||||||||||||||||
| Автор: | E1 [ Чет Мар 01, 2012 12:38 pm ] |
| Заглавие: | Re: Въпрос за ACCESS |
Благодаря за отговора. Междувременно тръгна по малко по-сложния начин, който се опитвах два дни да използвам - с DataBindings. Целият проблем се оказа в грешно свързване на полетата от моя страна - не бях обърнал внимание, че при връзката на масива и таблицата съм свързал елемент(0)->поле1 и елемент(1)->поле 0 и оттам се получаваха нелогични аномалии, които не можех да си обясня. Най-лошото беше, че двата елемента са в идентичен формат и порядък и размяната оставаше скрита. ---------------- Един въпрос от VB: Как може да се раздели от един TextBox в два отделни. Например: Ако имаме: TextBox1.Text="Hello", текстът да се пренасочи така: Text.Box2.Text="He" TextBox3.Text="llo"? |
|
| Автор: | CarBeta [ Съб Мар 03, 2012 8:53 pm ] | |||||||||||||||||||||||||||
| Заглавие: | Re: Въпрос за ACCESS | |||||||||||||||||||||||||||
Взимаш два символа от ляво:
Взимаш три символа от дясно:
Взимаш три символа от средата, като започнеш от втория:
|
||||||||||||||||||||||||||||
| Автор: | E1 [ Нед Мар 04, 2012 12:15 pm ] |
| Заглавие: | Re: Въпрос за ACCESS |
Благодаря! Във Visual Basic 2010 съществува ли начин за изчистване на приемния буфер на серийния порт? Имам комуникация през него(от микроконтролер), но прочита 100% коректно само първото съобщение. След това започва да си прави каквото си иска. Доколкото виждам, това е сериозен проблем за доста хора. Дошла ми е на ум една доста тъпа идея - да изпращам безсмислени символи "-", до запълване на буфера, веднага след валидното съобщение, така че следващото валидно да е пак в началото на буфера. Но искам да избягна подобна глупост и ако е възможно, просто да изчистя буфера. Попадам на съвети да се следят приетите байтове, като се направи масив с размера на буфера и с "показалец" се следи определя коя част се чете, но и тази концепция ми се струва доста тромава. Ето кодът, който ползвам: Private Sub DataReceived( _ ByVal sender As Object, _ ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _ Handles serialPort.DataReceived txtDataReceived.Invoke(New _ myDelegate(AddressOf updateTextBox), _ New Object() {}) End Sub '============= Public Delegate Sub myDelegate() '============= Public Sub updateTextBox() With txtDataReceived txtDataReceived.Clear() .AppendText(serialPort.ReadExisting) '===== РАЗДЕЛЯНЕ НА ДАННИТЕ В ДВЕ ТЕКСТОВИ КУТИИ ===== Area.Text = txtDataReceived.Text txtDataReceived.Clear() End With End Sub |
|
| Автор: | CarBeta [ Нед Мар 04, 2012 1:04 pm ] |
| Заглавие: | Re: Въпрос за ACCESS |
Съществува - Rs232.DiscardInBuffer() А защо просто не направиш буфера с размер, който те устройва(InBufferSize=???)? По подразбиране, ако не се лъжа, размера на буфера е 512 знака. Задай му 1 или 10 или колкото ти трябват там! Другия вариант е, ако получаваш съобщения с различна дължина, вземи дължината на приетото съобщение(InBufferCount) А и по подразбиране порта е настроен да ти дава ASCII. Възможно да ти изкарва глупости ако процесора ти праща HEX. След With txtDataReceived не е нужно да пишеш преди точката txtDataReceived. То това е идеята на With И последното не ти разделя съобщението на две... |
|
| Автор: | E1 [ Нед Мар 04, 2012 1:54 pm ] |
| Заглавие: | Re: Въпрос за ACCESS |
С DiscardBuffer() нещата се пооправиха - греши в около 25% от случаите. Ще опитам със съобщение към процесора, да изпрати данните отново. Съобщенията са с еднаква дължина - 18 байта. При мен VB2010 не разпознава командата InBufferSize. Има ли някаква особеност при задаването? Всичко предавам като ASCII. Изпращането е коректно, защото имам монитор на серийния порт и там ги виждам при тест - винаги коректни съобщения. Имам проблем с обработката във VB2010. Странно е, че първото съобщение ВИНАГИ се възприема коректно. А после настава хаос. За другото, махнал съм редовете, които разделят, за да се вижда само процедурата, която има отношение към трансфера, а съм забравил коментара. Буферът мисля, че е 2000 и нещо(2047) по подразбиране. =========== С обратната връзка нещата си дойдоха на място. Следя дължината на прочетеното и ако е различно от 18, връщам грешка. Досега не е зацикляло. =========== CarBeta, благодаря ти! Много ми помогна! Откъде може да се промени локацията, на която да се инсталира програмата после(не публикуване, а място на инсталация)? В момента набива в Local Settings и не ме радва. |
|
| Автор: | CarBeta [ Нед Мар 04, 2012 8:56 pm ] | |||||||||
| Заглавие: | Re: Въпрос за ACCESS | |||||||||
Като правиш инсталационен пакет, съветника иска целия проект и самата програма. Проекта му трябва заради библиотеките, които си използвал и след това ги инсталира там където са и на твоя компютър. Програмата по подразбиране се инсталира на мястото, от където си я посочил на съветника(в твоя случай там където ти е проекта). Или промени пътя за инсталация или направи една папка, където искаш да се инсталира, и сложи там програмата. Като правиш пакета за инсталиране избери програмата от папката, в която искаш да се инсталира после, а не от папката, където ти е проекта. За размера на буфера опитай само с BufferSize
|
||||||||||
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|