Significant data per record

F

FL

I'm trying to do a report chart with a table of 3 fields that contain 12000
records. However, the chart limits the data to about 1/4 of these records.
All 3 fields are number fields. Is there a limit to number of records or
data points that can be charted. XY scatter chart or line chart. Using
Access 2000.
 
J

James A. Fortune

FL said:
I'm trying to do a report chart with a table of 3 fields that contain 12000
records. However, the chart limits the data to about 1/4 of these records.
All 3 fields are number fields. Is there a limit to number of records or
data points that can be charted. XY scatter chart or line chart. Using
Access 2000.

Try:

http://groups.google.com/group/comp.databases.ms-access/msg/4f94af06d1120c87

Note: Since installing Acrobat Reader 8 I can view the sample file
correctly from IE.

If larger images are to be added to the file, make the following change
to the GetColorsFromFile function:

http://groups.google.com/group/comp.databases.ms-access/msg/9c3dcf952fc3e3d3

Also, I have changed the code that I use to get the path for Acrobat
Reader. The primary function is called GetAcrobatReaderShellPath().
BTW, the default install path convention changed in 8.0. I check the
registry first. If that method fails I revert to a table:

tblAcrobatInstallPath
AIPID AutoNumber
AcrobatReaderBaseVersion Text
AcrobatReaderDefaultInstallPath Text
AcrobatReaderOtherInstallPath Text
AIPID AcrobatReaderBaseVersion AcrobatReaderDefaultInstallPath
AcrobatReaderOtherInstallPath
1 3.0 C:\Program Files\Adobe\Acrobat 3.0\Reader\ Null
2 4.0 C:\Program Files\Adobe\Acrobat 4.0\Reader\ Null
3 5.0 C:\Program Files\Adobe\Acrobat 5.0\Reader\ Null
4 6.0 C:\Program Files\Adobe\Acrobat 6.0\Reader\ Null
5 7.0 C:\Program Files\Adobe\Acrobat 7.0\Reader\ Null
6 8.0 C:\Program Files\Adobe\Reader 8.0\Reader\ Null

'---Begin module code---
'Support functions and constants for reading a string from the registry
'I have modified slightly the code posted by John deKrafft
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String,
ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As
Long) As Long
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA"
(ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long,
ByVal samDesired As Long, phkResult As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Public Const SYNCHRONIZE As Long = &H100000
Public Const STANDARD_RIGHTS_ALL As Long = &H1F0000
Public Const KEY_QUERY_VALUE As Long = &H1
Public Const KEY_SET_VALUE As Long = &H2
Public Const KEY_CREATE_SUB_KEY As Long = &H4
Public Const KEY_ENUMERATE_SUB_KEYS As Long = &H8
Public Const KEY_NOTIFY As Long = &H10
Public Const KEY_CREATE_LINK As Long = &H20
Public Const KEY_ALL_ACCESS As Long = ((STANDARD_RIGHTS_ALL Or _
KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or _
KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not
SYNCHRONIZE))
Public Const ERROR_SUCCESS As Long = 0
Public Const HKEY_LOCAL_MACHINE As Long = &H80000002
Public Const HKEY_CLASSES_ROOT As Long = &H80000000

Public Function GetRegistryString(lngKey As Long, strSubKey As String,
strValue As String) As String
Dim lngDataType As Long
Dim lngDataLength As Long
Dim strDataString As String
Dim lngResult As Long
Dim lngHandle As Long
Const StringLength = 150

strDataString = Space(StringLength)
lngDataType = 0
lngDataLength = CLng(StringLength)
lngResult = RegOpenKeyEx(lngKey, strSubKey, 0, KEY_ALL_ACCESS, lngHandle)
If lngResult <> ERROR_SUCCESS Then
GetRegistryString = "Error"
Exit Function
End If
lngResult = RegQueryValueEx(lngHandle, strValue, 0, lngDataType, ByVal
strDataString, lngDataLength)
If lngResult <> ERROR_SUCCESS Then
GetRegistryString = "Error"
lngResult = RegCloseKey(lngHandle)
Exit Function
End If
strDataString = Left(strDataString, lngDataLength)
'Clean the string in a way that works for either registry key option
used in GetAcrobatReaderShellPath()
'Remove a doublequote from the beginning of the string, if present
If Len(strDataString) > 0 Then
If Left(strDataString, 1) = Chr(34) Then strDataString =
Right(strDataString, Len(strDataString) - 1)
End If
'Delete an extra character if present
If Right(strDataString, 3) <> "exe" And Len(strDataString) > 0 Then
strDataString = Left(strDataString, Len(strDataString) - 1)
'Remove a doublequote from the end of the string, if present
If Len(strDataString) > 0 Then
If Right(strDataString, 1) = Chr(34) Then strDataString =
Left(strDataString, Len(strDataString) - 1)
End If
'Make sure the string ends with "exe"
If Right(strDataString, 3) = "exe" Then
GetRegistryString = Left(strDataString, lngDataLength)
Else
GetRegistryString = "Error"
End If
lngResult = RegCloseKey(lngHandle)
End Function
'----

Public Function GetAcrobatReaderShellPath() As String
'Note: Use HKEY_CLASSES_ROOT\Software\Adobe\Acrobat\Exe
'since a user might have Acrobat installed and uses it instead of
Acrobat Reader
Dim MyDB As Database
Dim AcroPathRS As Recordset
Dim strSQL As String
Dim lngCount As Long
Dim lngI As Long
Dim strTemp As String
Dim varDir As Variant

strTemp = GetRegistryString(HKEY_CLASSES_ROOT,
"Software\Adobe\Acrobat\Exe", "")
If strTemp = "" Or strTemp = "Error" Then
strTemp = "Error"
'The registry string didn't work so use entry from tblAcrobatInstallPath
Set MyDB = CurrentDb
strSQL = "SELECT * FROM tblAcrobatInstallPath ORDER BY AIPID DESC;"
Set AcroPathRS = MyDB.OpenRecordset(strSQL, dbOpenSnapshot)
If AcroPathRS.RecordCount > 0 Then
AcroPathRS.MoveLast
lngCount = AcroPathRS.RecordCount
AcroPathRS.MoveFirst
For lngI = 1 To lngCount
varDir = AcroPathRS("AcrobatReaderOtherInstallPath")
If Not IsNull(varDir) Then
If Dir(varDir & "AcroRd32.exe") <> "" Then
strTemp = varDir & "AcroRd32.exe"
Exit For
End If
Else
varDir = AcroPathRS("AcrobatReaderDefaultInstallPath")
If Not IsNull(varDir) Then
If Dir(varDir & "AcroRd32.exe") <> "" Then
strTemp = varDir & "AcroRd32.exe"
Exit For
End If
End If
End If
If lngI <> lngCount Then AcroPathRS.MoveNext
Next lngI
End If
AcroPathRS.Close
Set AcroPathRS = Nothing
Set MyDB = Nothing
End If
GetAcrobatReaderShellPath = strTemp
End Function
'----End module code----

BTW, I think I may have found out why I got some warnings when images
were added. The line containing "StrConv(TheBytes(), vbUnicode)" is
only used when images are added. The use of unicode for part of the
content and non-unicode for the rest of the file might throw off the
byte count :). I'll have to experiment with making the entire file
unicode before counting bytes.

James A. Fortune
(e-mail address removed)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top