Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Visual Basic und MSflexgrid

Frage Entwicklung Visual Studio

Mitglied: ComputerhelferFerdi

ComputerhelferFerdi (Level 1) - Jetzt verbinden

28.02.2008, aktualisiert 29.02.2008, 8739 Aufrufe, 12 Kommentare

Hallo
Hat jemand eine Ahnung ob es bei dem MSFlexgrid Steuerelement VB6 eine Begrenzung der Zeilen und Spalten gibt. Ich habe die
Erfahrung gemacht irgendwo bei 6000 Rows geht nichts mehr, bräuchte aber so ca 80000 Zeilen.

Ferdi Neuhaus
Mitglied: misterdemeanor
28.02.2008 um 15:48 Uhr
Grüß Dich Ferdi,

laut Microsoft ist das MSFlexGrid auf 350.000 Zellen begrenzt KB191006. Wenn Du aber tatsächlich nur 6000 Zeilen ins Control bekommst, und nicht etwa knapp 60 Spalten hast, liegt es wohl am fehlenden RAM.

BG, Felix -misterdemeanor-
Bitte warten ..
Mitglied: misterdemeanor
28.02.2008 um 16:09 Uhr
Wenn Du ein ADO RS verwendest hilft Dir vielleicht dieses Microsoft How-To weiter.

BG, Felix -misterdemeanor-
Bitte warten ..
Mitglied: ComputerhelferFerdi
28.02.2008 um 17:46 Uhr
Na ja 2 GB Ram sollten ja wohl reichen. Dann werd ich mal woanders nach nem Fehler suchen.

Ferdi
Bitte warten ..
Mitglied: misterdemeanor
28.02.2008 um 18:05 Uhr
Hi,

was für eine Datenquelle benutzt Du denn für das FlexGrid? Wird nur Text angezeigt oder auch Bilder?
Bitte warten ..
Mitglied: ComputerhelferFerdi
28.02.2008 um 18:37 Uhr
Ich zapfe die DSN an.
Dort lege ich verschiedene Verbindungen an, dann brauch ich nur noch mit VB auf die DSN zuzugreifen. Ich habe eigendlich nur vor Inhalte von Tabellen auszulesen und da sind 2 dabei die halt einbisschen länger sind (ca 65000) Zeilen. Nach 6000 Zeilen sagt mir das Prog, es kann nicht mehr ins Flexgrid schreiben.

Ferdi
Bitte warten ..
Mitglied: misterdemeanor
28.02.2008 um 19:02 Uhr
Ich zapfe die DSN an.

?? Wie jetzt?

Dort lege ich verschiedene Verbindungen an,

wo ist dort? Im ODBC Admin?

dann brauch ich nur noch mit VB auf die DSN
zuzugreifen.

In einer DataEnvironment? Rein vom Code aus? Über ein DataControl?

Ich habe eigendlich nur vor
Inhalte von Tabellen auszulesen

^^Dann sage bitte wie genau Du das momentan machst.

BG, Felix -misterdemeanor-
Bitte warten ..
Mitglied: ComputerhelferFerdi
28.02.2008 um 19:22 Uhr
Morgen im Laufe des Vormittag schick ich mal den Quellcode den ich bis jetzt habe.

Muss jetzt gospeln gehen.

Ferdi
Bitte warten ..
Mitglied: ComputerhelferFerdi
29.02.2008 um 06:47 Uhr
Moin
So sieht der Quellcode aus, bitte nicht an der Unordnung stören , bin halt noch am rumprobieren
Wenn ich bei diesem Gebilde eine Tabelle mit mehr als 6000 Zeilen einlesen, Anzahl der Spalten weiss ich nicht, gibts eine Fehlermeldung.


Ferdi

*
Public Sub Form_load()
Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sql As String
Dim viel As Long
Dim vielzeilen As Long
Dim i As Long
Dim nRow As Long


Set Conn = New ADODB.Connection
Conn.Provider = "MSDASQL"
Conn.Mode = adModeRead
Conn.CursorLocation = adUseClient

Conn.Open "Provider=MSDASQL;DSN=????"
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient

Set rs.ActiveConnection = Conn
rs.CursorType = adOpenForwardOnly
rs.LockType = adLockReadOnly

rs.Open "select distinct table_schema from information_schema.tables"

'Datenbank auswählen und Connection ändern

i = 0
For i = 0 To rs.Fields.Count - 1
Text1.Text = rs.Fields(i).Value
Next i


'Flexgrid füllen
viel = rs.Fields.Count
With MSFlexGrid1

' Zählvariable für die aktuelle Zeile
nRow = 0
.Rows = rs.RecordCount + 1
While Not rs.EOF
nRow = nRow + 1
i = 0
For i = 0 To rs.Fields.Count - 1
' ' Aktuellen Wert ins FlexGrid kopieren
.TextMatrix(nRow, i) = rs.Fields(i).Value
.Col = i 'Spalte zuweisen
Next i
' auch hier gibt es ein "MoveNext"
rs.MoveNext
Wend

If .Row > 0 Then .Row = 1
.Enabled = (.Rows > 1)

End With

'Recordset schließen
rs.Close
Set rs = Nothing

'Connection schließen
Conn.Close
Set Conn = Nothing

End Sub
Bitte warten ..
Mitglied: misterdemeanor
29.02.2008 um 10:32 Uhr
Hallo Ferdi,

als erstes mal ein Hinweis auf die Formatierungshilfe


Wenn ich bei diesem Gebilde

Gebilde ist das richtige Wort.

eine Tabelle mit mehr als 6000 Zeilen einlesen,

6000 Databases (Schemata) [oder doch sogar 65000 wie vorher mal angedeutet] auf einem einzigen MySQL-Server?

Anzahl der Spalten weiss ich nicht,
...
rs.Open "select distinct table_schema from information_schema.tables"

Vielleicht nochmal genau hinschauen, dann weißt Du wie viele Spalten.

gibts eine Fehlermeldung.

Die Du uns warum vorenthältst?

BTW

rs.CursorType = adOpenForwardOnly

Wenn ich mich nicht irre hat die [Recordset].RecordCount-Prop bei einem ADO Recordset mit Vorwärtscursor standardmäßig den Wert -1

[MSFlexGrid1].Rows = rs.RecordCount + 1

könnte somit auch schon einen Fehler auslösen.

Naja, zum restlichen Gebilde sage ich besser auch nichts *g

BG, Error---Username not specified----Refill Coffee
Bitte warten ..
Mitglied: ComputerhelferFerdi
29.02.2008 um 10:59 Uhr
Hier die Fehlermeldung:

Laufzeitfehler '30006'
Reservieren von Speicher für Flex Tabelle nicht möglich



.Rows = rs.RecordCount + 1

Wenn ich mit der Maus über "rs.RecordCount" gehe zeigt mir das Kontextmenue 75606 an
aber wie gesagt die Meldung kommt auch schon bei einem Wert von 8000


Das ich nicht soviel Tabellen weis ich selbst, hatte nur bei dem Quellcode eine andere SQL-Abfrage aktiv, das ist aber doch nebensächlich da ihr ja auch nicht die Datenbank habt.


Ferdi
Bitte warten ..
Mitglied: misterdemeanor
29.02.2008 um 11:22 Uhr
Hier die Fehlermeldung:

Laufzeitfehler '30006'
Reservieren von Speicher für Flex
Tabelle nicht möglich

Was in dem KB-Artikel behandelt wird den ich im ersten Post schon verlinkt habe.

Wenn Zeilen*Spalten größer als 350.000 dann Reservieren von Speicher für Flex Tabelle nicht möglich

Entweder Du beschränkst Dich im SELECT auf die relevanten Daten, nutzt den TIPP den ich im zweiten Post bereits verlinkt hatte, oder erwägst mal das MS DataGrid Control zu verwenden.
Bitte warten ..
Mitglied: ComputerhelferFerdi
29.02.2008 um 12:12 Uhr
Ich muss gestehen ich hatte das * zwischen den Zahlen nicht geshen, nachdem ich das aber bemerkt habe erschliest sich auch mir die Problematik, multiplizieren von Spalten und Zeilen ergibt den Vaktor der nicht über 350000 sein darf. Na da werd ich doch mal das MS DataGrid versuchen.

Besten Dank bis hier
Werde das mal Anfang der Woche versuchen, am Wochenende ist das so müssig


Ferdi
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Visual Studio
gelöst Remotedienst prüfen mit Visual Basic (1)

Frage von flyingmichael zum Thema Visual Studio ...

Visual Studio
Mit Visual Basic auf Shopware 5 API zugreifen (9)

Frage von SmogKiel zum Thema Visual Studio ...

Visual Studio
gelöst Pastebin auslesen mit Visual Basic? (2)

Frage von UltraZz zum Thema Visual Studio ...

Basic
gelöst Mit Visual Basic Batch Datei öffnen (26)

Frage von Flodsche zum Thema Basic ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...