Конференция на VBStreets - Вижте темата - FlexGrid и мрежите като цяло в Access
Между другото, Janus GridEx 2000 (http://www.janusys.com) е най-подобният на Access от Grids, ако се вгледате внимателно. Те, изглежда, са погледнали Access, когато са го направили. Съответно, той се „вписва“ доста добре в самия Access (наистина изобщо не ми харесва как работи Access с контроли на трети страни).
Въпреки това, IMHO, ако правите нещо в Access, е по-добре да използвате само неговите собствени компоненти.
P.S И използването на Grids, които идват с VB, всъщност е мазохизъм.
Напишете нещо подобно:
Код: Изберете всички Dim като String s= "123" & vbTab & "456" MSFlexGrid1.AddItem s
Символът vbTab прескача към следващата колона, така че ако трябва да напишете ред от таблица на база данни, тогава вземете същия Recordset и залепете полетата му през vbTab в низ и в Additem, всичко това бавно става вярно.
Код: Select All Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Open "SELECT ClientID, Title, Login from Clients", ConnString, adOpenStatic, adLockReadOnly, adCmdText
s = rs.GetString(adClipString, -1, vbTab, vbCr, "")
With Me.MSFlexGrid1 .Redraw = False .Clear .Rows = rs.RecordCount + 1 .Cols = rs.Fields.Count + 1 .FixedCols = 1 .FixedRows = 1
.ColW > .TextMatrix(0, 1) = "ID на клиента" .TextMatrix(0, 2) = "Заглавие" .TextMatrix(0, 3) = "Вход"
.ColSel = Me.MSFlexGrid1.Cols - 1 .RowSel = Me.MSFlexGrid1.Rows - 1
.ColSel = 0 .RowSel = 0 .Col = 1 .Row = 1 .AllowUserResizing = flexResizeColumns .Redraw = True End With
Konst_One Код: Изберете всички Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Open "SELECT ClientID, Title, Login from Clients", ConnString, adOpenStatic, adLockReadOnly,adCmdText
Обяснете как се различава курсорът на клиента във вашия случай от сървъра. Клиентът отнема повече ресурси? Код: Изберете всички Dim rs като ADODB.Recordset Dim cn като ADODB.Connection Dim sql като низ sql = "изберете TELEPHONE,NAME,REGION,STREET,BUILDING,BLOCK,FLAT,ElID from ElPhones Order by TELEPHONE" Set cn = New ADODB.Connection cn.O pen = "PROV Set rs = cn.Execute(sgl) Do Until rs.EOF '. Попълване на мрежата '. rs.NextRecordset Wend rs.Close Set rs = Nothing Set cn = Nothing http://bbs.vbstreets.ru/viewtopic.php ?t=14532 Каква е принципната истинска разлика?
клиентският курсор е физически отворен на клиентския компютър, т.е. всички данни се изпращат директно на клиента
сървърният курсор е отворен на сървъра и се управлява от самия сървър на база данни, качването на клиента се извършва според нуждите, съответно натоварването на мрежата за предаване на информация е намалено
За да попълните DBGRID с ваши собствени потребителски данни, първо трябва да създадете неприкрепен набор от записи и да го попълните с тези данни, след което да го присвоите на мрежата като източник на данни.
Код: Изберете All Dim rs като ADODB.Recordset
Задайте rs=Нов ADODB.Recordset rs.Fields.Append "ID", adInteger rs.Fields.Append "Desc", adVarchar,100
rs.Open rs.AddNew rs! >rs!Desc="Тест 1" rs.Актуализация
Konst_One Ако разбирам правилно, независимо дали искаме да прехвърлим 1 ред от базата данни на сървъра от 100 000, все едно, в случай на клиентски курсор, всичките 100 000 ще бъдат прехвърлени към клиента. Друг е въпросът как ще покажем цялата тази икономика - частично или изцяло. ==> трафик и машината е натоварена изцяло. Това е вярно?
Андрей Федоров Кажете ми името на библиотеката на мрежата за достъп, искам да я използвам във VB6. Ивсе пак къде да намеря нормална библиотека (не демо) "Janus GridEx 2000" или лекарство. Изложи в тема плиз.
Намерих VSFlexGrid на Video Soft. Сега не работи със стандартни VB мрежи. Можете да го получите тук: http://bbs.vbstreets.ru/viewtopic.php?p=106816#106816
Не - не мога да кача закупения компонент. Можете да го потърсите в дисковете, които се продават. Е, знаете къде. Нарича се Janus GridEx 2000.
Това е възможно, но в такива случаи е по-трудно да се обработят и изведат съобщенията за грешка при въвеждане, особено когато са на няколко реда. Но често трябва да правите това - за да е по-удобно за потребителя.
[quote="alibekТова е проблем на потребителя. Ако наистина искате да попълвате, както в Excel, оставете го да попълва Excel, а вие прехвърлете данните в базата данни.[/quote]
Тогава проблемът на потребителя ще прерасне в проблем на програмиста.
И най-важното - потребителят му не иска да попълва в Excel, той иска да попълва като в Excel. Това е, например, първо да попълните първата колона вертикално, а след това останалите - има формуляри, където е толкова удобно (или просто познато). Не можете да въвеждате данни в таблица на база данни по този начин - все пак някои от полетата в нея са обявени за задължителни, а само едно е попълнено. Така че трябва да попълните таблицата на клиента, като натиснете бутона Запис, да направите всички възможни проверки за коректност на въвеждането и едва тогава да запазите всички въведени записи.
Същата решетка. Направих подобни, включително когато при въвеждане на стойност в едно поле се преизчисляват стойностите в други полета, включително в други записи - на Grid всичко това се изпълнява нормално.