Отговори на тема  [ 20 мнения ]  Отиди на страница 1, 2  Следваща
Въпрос за ACCESS 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Въпрос за ACCESS
Налага ми се да направя едно поддържане на база от данни. Базата от данни създадох-таблици и релационни връзки, но имам сериозен проблем относно диалога за управлението. Как може да се направи излизащ диалогов прозорец, в който като въведа, например номер на клиент и номер на заявка, да направи проверка в таблицата със заявките, дали срещу този клиент е записана тази заявка? Със "справки" ли става това или трябва да се ползва нещо друго(например да се прави апликация във VB, която да управлява базата от данни)?

_________________
http://www.szrefekt.com


Сря Фев 22, 2012 10:45 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8397
Местоположение: София
Мнение Re: Въпрос за ACCESS
Да, за интрефейс трябва да ползваш VBA (visual basic for applications).


Чет Фев 23, 2012 2:22 am
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Re: Въпрос за ACCESS
Благодаря! Така си и помислих, но нямам опит с Access-а.

_________________
http://www.szrefekt.com


Чет Фев 23, 2012 12:36 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Re: Въпрос за ACCESS
Честно казано, не мога да схвана как точно трябва да въведа кода в таблиците. Трябва ми, например, следното: Имаме Table1 и Table2. Ако някъде в Table1 Поле2 и Поле3 имат съответни стойности с Поле2 и Поле3 на Table2(за всяка таблица -в рамките на един запис - т.е. на един ред), то в Поле4(на съответния ред) на Table2 да се запише "1".

_________________
http://www.szrefekt.com


Пет Фев 24, 2012 2:20 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10103
Мнение Re: Въпрос за ACCESS
що не започнеш с някой туториал, после с по-сериозна книжка и накрая дебела книга за аксеса (ако изобщо има смисъл точно от този "продукт")


Пет Фев 24, 2012 2:54 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Чет Сеп 28, 2006 4:24 pm
Мнения: 320
Местоположение: Варна
Мнение Re: Въпрос за ACCESS
Трябва ти някоя книжка за Visual Basic for Applications.И интернет има доста , но напоследък взеха да изчезват тези сайтове :)


Пет Фев 24, 2012 7:09 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Re: Въпрос за ACCESS
Проблемът е по-скоро с Access-а. Но намерих примери и напредвам.

_________________
http://www.szrefekt.com


Съб Фев 25, 2012 2:58 am
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Re: Въпрос за ACCESS
Почти всичко успях да направя(оказа се доста по-обемно от планираното). Остана само един проблем:
Необходимо е да се търси съдържание "Х" в поле "Y" и след като се открие, целият запис да се прехвърли в отделни TextBox. Например: Ако в полето(колоната) се търси "1", след като се намери, цялото съдържание на записа(реда), да се запише в TextBox1 - TextBox3:
поле1 (1) -> TextBox1
съдържание на поле вдясно->TextBox2
съдържание на последно поле-> TextBox3
поле 1 е първичен ключ. Т.е. няма два записа, които да покриват този критерий.

_________________
http://www.szrefekt.com


Сря Фев 29, 2012 11:35 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение Re: Въпрос за ACCESS
Примерно...
Код:
Dim rs As Object
Set rs = CurrentDb.OpenRecordset("Table1")


Код:
Do While Not rs.EOF
If rs!име_на_колона_ID = "нещо" Then
TextBox1.value = rs!име_на_колона_1
TextBox2.value = rs!име_на_колона_2
TextBox3.value = rs!име_на_колона_3
Exit Do
End If
Loop

Set rs = Nothing


Чет Мар 01, 2012 1:30 am
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 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"?

_________________
http://www.szrefekt.com


Чет Мар 01, 2012 12:38 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение Re: Въпрос за ACCESS
Взимаш два символа от ляво:
Код:
Text2.Text = Left(Text1.Text, 2)
'Text1.Text = "Hello", Text2.Text = "He"

Взимаш три символа от дясно:
Код:
Text3.Text = Right(Text1.Text, 3)
'Text1.Text = "Hello", Text3.Text = "llo"

Взимаш три символа от средата, като започнеш от втория:
Код:
Text4.Text = Mid(Text1.Text, 2, 3)
'Text1.Text = "Hello", Text4.Text = "ell"


Съб Мар 03, 2012 8:53 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 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

_________________
http://www.szrefekt.com


Нед Мар 04, 2012 12:15 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 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
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Re: Въпрос за ACCESS
С DiscardBuffer() нещата се пооправиха - греши в около 25% от случаите.
Ще опитам със съобщение към процесора, да изпрати данните отново.
Съобщенията са с еднаква дължина - 18 байта. При мен VB2010 не разпознава командата InBufferSize. Има ли някаква особеност при задаването?
Всичко предавам като ASCII. Изпращането е коректно, защото имам монитор на серийния порт и там ги виждам при тест - винаги коректни съобщения. Имам проблем с обработката във VB2010. Странно е, че първото съобщение ВИНАГИ се възприема коректно. А после настава хаос.
За другото, махнал съм редовете, които разделят, за да се вижда само процедурата, която има отношение към трансфера, а съм забравил коментара. Буферът мисля, че е 2000 и нещо(2047) по подразбиране.
===========
С обратната връзка нещата си дойдоха на място. Следя дължината на прочетеното и ако е различно от 18, връщам грешка. Досега не е зацикляло.
===========
CarBeta, благодаря ти! Много ми помогна!
Откъде може да се промени локацията, на която да се инсталира програмата после(не публикуване, а място на инсталация)? В момента набива в Local Settings и не ме радва.

_________________
http://www.szrefekt.com


Нед Мар 04, 2012 1:54 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение Re: Въпрос за ACCESS
Като правиш инсталационен пакет, съветника иска целия проект и самата програма. Проекта му трябва заради библиотеките, които си използвал и след това ги инсталира там където са и на твоя компютър. Програмата по подразбиране се инсталира на мястото, от където си я посочил на съветника(в твоя случай там където ти е проекта). Или промени пътя за инсталация или направи една папка, където искаш да се инсталира, и сложи там програмата. Като правиш пакета за инсталиране избери програмата от папката, в която искаш да се инсталира после, а не от папката, където ти е проекта.

За размера на буфера опитай само с BufferSize
Код:
object.BufferSize = Value


Нед Мар 04, 2012 8:56 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 20 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни