|
Виж темите без отговор | Виж активните теми
Дата и час: Пет Авг 21, 2026 10:36 am
| Автор |
Съобщение |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Въпрос за ACCESS
Налага ми се да направя едно поддържане на база от данни. Базата от данни създадох-таблици и релационни връзки, но имам сериозен проблем относно диалога за управлението. Как може да се направи излизащ диалогов прозорец, в който като въведа, например номер на клиент и номер на заявка, да направи проверка в таблицата със заявките, дали срещу този клиент е записана тази заявка? Със "справки" ли става това или трябва да се ползва нещо друго(например да се прави апликация във VB, която да управлява базата от данни)?
|
| Сря Фев 22, 2012 10:45 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8397 Местоположение: София
|
 Re: Въпрос за ACCESS
Да, за интрефейс трябва да ползваш VBA (visual basic for applications).
|
| Чет Фев 23, 2012 2:22 am |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Въпрос за ACCESS
Благодаря! Така си и помислих, но нямам опит с Access-а.
|
| Чет Фев 23, 2012 12:36 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Въпрос за ACCESS
Честно казано, не мога да схвана как точно трябва да въведа кода в таблиците. Трябва ми, например, следното: Имаме Table1 и Table2. Ако някъде в Table1 Поле2 и Поле3 имат съответни стойности с Поле2 и Поле3 на Table2(за всяка таблица -в рамките на един запис - т.е. на един ред), то в Поле4(на съответния ред) на Table2 да се запише "1".
|
| Пет Фев 24, 2012 2:20 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10103
|
 Re: Въпрос за ACCESS
що не започнеш с някой туториал, после с по-сериозна книжка и накрая дебела книга за аксеса (ако изобщо има смисъл точно от този "продукт")
|
| Пет Фев 24, 2012 2:54 pm |
|
 |
|
raven_feather
Ранг: Популярен
Регистриран на: Чет Сеп 28, 2006 4:24 pm Мнения: 320 Местоположение: Варна
|
 Re: Въпрос за ACCESS
Трябва ти някоя книжка за Visual Basic for Applications.И интернет има доста , но напоследък взеха да изчезват тези сайтове 
|
| Пет Фев 24, 2012 7:09 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Въпрос за ACCESS
Проблемът е по-скоро с Access-а. Но намерих примери и напредвам.
|
| Съб Фев 25, 2012 2:58 am |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Въпрос за ACCESS
Почти всичко успях да направя(оказа се доста по-обемно от планираното). Остана само един проблем: Необходимо е да се търси съдържание "Х" в поле "Y" и след като се открие, целият запис да се прехвърли в отделни TextBox. Например: Ако в полето(колоната) се търси "1", след като се намери, цялото съдържание на записа(реда), да се запише в TextBox1 - TextBox3: поле1 (1) -> TextBox1 съдържание на поле вдясно->TextBox2 съдържание на последно поле-> TextBox3 поле 1 е първичен ключ. Т.е. няма два записа, които да покриват този критерий.
|
| Сря Фев 29, 2012 11:35 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: Въпрос за ACCESS
|
| Чет Мар 01, 2012 1:30 am |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Въпрос за ACCESS
Благодаря за отговора. Междувременно тръгна по малко по-сложния начин, който се опитвах два дни да използвам - с DataBindings. Целият проблем се оказа в грешно свързване на полетата от моя страна - не бях обърнал внимание, че при връзката на масива и таблицата съм свързал елемент(0)->поле1 и елемент(1)->поле 0 и оттам се получаваха нелогични аномалии, които не можех да си обясня. Най-лошото беше, че двата елемента са в идентичен формат и порядък и размяната оставаше скрита. ---------------- Един въпрос от VB: Как може да се раздели от един TextBox в два отделни. Например: Ако имаме: TextBox1.Text="Hello", текстът да се пренасочи така: Text.Box2.Text="He" TextBox3.Text="llo"?
|
| Чет Мар 01, 2012 12:38 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: Въпрос за ACCESS
Взимаш два символа от ляво: Взимаш три символа от дясно: Взимаш три символа от средата, като започнеш от втория:
|
| Съб Мар 03, 2012 8:53 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 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
|
| Нед Мар 04, 2012 12:15 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: Въпрос за ACCESS
Съществува - Rs232.DiscardInBuffer() А защо просто не направиш буфера с размер, който те устройва(InBufferSize=???)? По подразбиране, ако не се лъжа, размера на буфера е 512 знака. Задай му 1 или 10 или колкото ти трябват там! Другия вариант е, ако получаваш съобщения с различна дължина, вземи дължината на приетото съобщение(InBufferCount) А и по подразбиране порта е настроен да ти дава ASCII. Възможно да ти изкарва глупости ако процесора ти праща HEX.
След With txtDataReceived не е нужно да пишеш преди точката txtDataReceived. То това е идеята на With И последното не ти разделя съобщението на две...
|
| Нед Мар 04, 2012 1:04 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Въпрос за ACCESS
С DiscardBuffer() нещата се пооправиха - греши в около 25% от случаите. Ще опитам със съобщение към процесора, да изпрати данните отново. Съобщенията са с еднаква дължина - 18 байта. При мен VB2010 не разпознава командата InBufferSize. Има ли някаква особеност при задаването? Всичко предавам като ASCII. Изпращането е коректно, защото имам монитор на серийния порт и там ги виждам при тест - винаги коректни съобщения. Имам проблем с обработката във VB2010. Странно е, че първото съобщение ВИНАГИ се възприема коректно. А после настава хаос. За другото, махнал съм редовете, които разделят, за да се вижда само процедурата, която има отношение към трансфера, а съм забравил коментара. Буферът мисля, че е 2000 и нещо(2047) по подразбиране. =========== С обратната връзка нещата си дойдоха на място. Следя дължината на прочетеното и ако е различно от 18, връщам грешка. Досега не е зацикляло. =========== CarBeta, благодаря ти! Много ми помогна! Откъде може да се промени локацията, на която да се инсталира програмата после(не публикуване, а място на инсталация)? В момента набива в Local Settings и не ме радва.
|
| Нед Мар 04, 2012 1:54 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: Въпрос за ACCESS
Като правиш инсталационен пакет, съветника иска целия проект и самата програма. Проекта му трябва заради библиотеките, които си използвал и след това ги инсталира там където са и на твоя компютър. Програмата по подразбиране се инсталира на мястото, от където си я посочил на съветника(в твоя случай там където ти е проекта). Или промени пътя за инсталация или направи една папка, където искаш да се инсталира, и сложи там програмата. Като правиш пакета за инсталиране избери програмата от папката, в която искаш да се инсталира после, а не от папката, където ти е проекта. За размера на буфера опитай само с BufferSize
|
| Нед Мар 04, 2012 8:56 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|