Solved

Create a Thumbnail/Bitmap Application in Access 97

Posted on 2000-05-01
53
1,143 Views
Last Modified: 2013-12-03
This is part one and these are the first questions of a three part application.

I need to write a Access 97 program, using Access 97 code, instead of Visual Basic or other code.

The program will load many, good-quality, thumbnail images of a bitmap directory on a screen, one page at a time.

Then the user clicks an option to select 'Next Page', Previous Page', or 'Main Menu', Unless it is the first or last page, which will remove 'Previous Page' or 'Next Page' text from the screen accordingly.

The user can also click on thumbnail to view fullsize image.  Which will then give options 'Next Image', Previous Image', 'Return To Thumbnails', or 'Main Menu'.

I then want to make a MDE file and put the program and pictures on a CD.  I have a Toshiba 7201 Desktop Computer, running Windows 95b, with Office 97 Developers Edition Tools, and a Sony Rewritable CD.

I have tried using shareware and other programs but the thumbnails aren't of good-quality, like when viewing with Windows 'My Computer' or they have other problems.
0
Comment
Question by:assistant
  • 15
  • 14
  • 10
  • +5
53 Comments
 
LVL 7

Accepted Solution

by:
Believer earned 500 total points
ID: 2767295
Have you researched an application called ThumbsPlus?  I have used it for years and I believe it have a very good reputation... Get a demo at http://www.thumbsplus.com.
(Wouldn't it be great if you could avoid re-inventing the wheel?!)  BTW: Thumbs also has the ability to be used as an OLE client (or something like that)...
0
 
LVL 14

Expert Comment

by:mgrattan
ID: 2767356
This is not a hard project to do in Access 97.  You can create a table that uses the OLE Object data type for one of its fields.  The OLE Object data type can store image files (JPG, GIF, BMP, etc.).  You can then show the images either in an Access form or report.

By the way, "Access 97 code" IS Visual Basic code (actually, to be specific, it is Visual Basic for Applications (VBA) code), which is functionally the same as Visual Basic).  However, I think you could probably do this project with little or no actual code.  Just create the table, add the pictures to the records in the table, and create a form or report to display the results.  Access forms and reports give you a record navigation control that lets you move forward and backward.

If you are trying to do something a little less "basic" and want it to look professional, then you will need to write a little code.  Particularly for loading the images to the table.  Take a look in the Access Help file for "OLE Objects, creating and inserting" for some more information on this.  To display the pictures in your form/report, you need to use the Bound Object Frame from the design toolbox.
0
 
LVL 7

Expert Comment

by:Believer
ID: 2767379
What's *really* interesting is that Thumbs actually uses either an Acess 2000 or 97 database to store it's info in!  That's part of how you can use Thumbs' functionality in other apps.  It also has handles to its own API's, etc.
I'm curious... how would you load thumbnails of images into Access otherwise?  You have this 2mb jpg, for example, and you want a 5k thumbnail...
0
 

Author Comment

by:assistant
ID: 2767503
First,  Thanks to you guys for responding so quick.

Believer,  I don't mind re-inventing the wheel to make a better one, especially if it rides smoother.  But for 500 points I hope someone else has in Access 97.  However, I will check it out, but remember, I have already checked out sever but none to my liking.

As for, I'm curious... how would you load thumbnails of images into Access otherwise?  You have this 2mb jpg, for example, and you want a 5k thumbnail...

That is what I am asking.  How to make and load thumbs into Access.

Mgrattan, I know that Access is VB, and I know how to load a bitmap, or other image into a screen, I just don't know how to make thumbnails, then fill the screen with them without creating the actual pictures, then binding them to the Form object, unless I wanted to navigate through them one picture at a time.

You see, I may add, or delete pictures from my directory and I don't want to have to bind image names to forms.
0
 
LVL 9

Expert Comment

by:Ruchi
ID: 2767555
take a look at
http://support.microsoft.com/download/support/mslfiles/Snpvw90.exe
"MSoft Snapshot Viewer (free; lets you get a thumbnail of Access97/2000 reports without having the apps on your 'puter"

http://www.smithvoice.com/appendin.htm
0
 
LVL 14

Expert Comment

by:mgrattan
ID: 2767622
Ruchi:  the snapshot viewer is a stand-alone EXE that lets you distribute Access Reports to users that don't have Access on their computers.  It has nothing to do with thumbnail images.  

assistant:  thanks for the clarification.  The only options I can see using Access VBA is the AppendChunk and GetChunk functions.  They are used for programmatically loading files into OLE fields in a table.  However, those functions do not intrinsically allow you to create smaller versions of an original file (which is what you are trying to do if you want thumbnails).  In order to do this, it seems that you would have to write code that would accurately re-scale the file to a smaller version of itself without affecting the perspective of the original image.  

I tried a search of the 'net to see if there were any third-party ActiveX components you could try but I didn't find any that did exactly what you were looking for.  There was one product, http://www.witzendsoft.com/pr02.htm, that allows you to view any image file as a thumbnail; but it doesn't actually create the thumbnails themselves.

If you want this application you are building to be completely self-contained in Access 97, then you will probably have to simulate the thumbnails with either the Bound Object Frame or the Picture control.
0
 

Expert Comment

by:GOLLEM
ID: 2768629
just listening....

interresting :)
0
 
LVL 9

Expert Comment

by:perove
ID: 2769120
Assistant,

You can  create a un-bound form to show ex. six pictures at the time in a form.
('ve never done this but I'm sure it can be done.)
But this is not a actual thumbnail, the "whole" picture is still loaded into access so, what you actualy show is a "resized" version of the image. (rezized in "area" but not in size that is!)

If you want a real thumbnail I guess you have to use some som AciveX object for the job -to convert & show the thumb of the picture. There is a lot of really good at componentsource. They cost but are of high quality, I think MS has som kind of certification for the 3-party dev. that are allowed on this site.


perove



0
 
LVL 1

Expert Comment

by:EvanL
ID: 2769411
Assistant:

There is not a way for VB code in MS Access to resize a loaded 2MB JPG file and create a thumbnail that is 25KB.  You will have to create the thumbnail images yourself.

As someone else mentioned, there is a chance that you could make MS Access display a thumbnail-sized square of a JPG, but it would only be a cropped version of the original image, not a resized image.  Perove was saying I believe the same kind of thing.

I would think that you would need to have a main image storage table, and a thumbnail image storage table.  A one-to-one primary key would let the program know what images are associated with each other.

MS Access is not the best program for displaying images of any size, although it can be done.
0
 

Expert Comment

by:GOLLEM
ID: 2769652
I agree with Evan.

Maybe you can use automation to resize the images and then import them into a table containing an OLE-field.

Automation isn't very easy to implement though.... and resizing with office doesn't produce very nice results, so you'll probably need a drawing-program that has its own API-interface and use that to create the thumbs.

regards,

         Michiel

0
 
LVL 7

Expert Comment

by:Believer
ID: 2769732
Okay, maybe I do have the answer... as I said, I read (in Thumbs help or on their website) that Thumbs extends to you, the programmer, the ability to use API calls (?) to create the thumbs.
Here's a hyperlink to the Adobe Acrobat file for version 4.0's manual: http://www3.cerious.com/binaries/cerious/guide40.pdf
0
 
LVL 1

Expert Comment

by:EvanL
ID: 2769744
Another suggestion:

Corel PhotoPaint 9 now uses Visual Basic for Applications 6.0 just like the rest of MS Office, in addition to an easy to use macro language (with recorder) where you can automate any function in PhotoPaint.

You could write a script to handle the resizing and thumbnail creation in about 5 minutes.  The VBA in PhotoPaint could probably handle the type of application you are talking about.

Lifted from the Corel website:
Microsoft Visual Basic for Applications 6: 1 Microsoft Visual Basic for Applications 6 is the leading application in
customization technology, used by more than three million developers. It lets developers build custom
business solutions by automating and integrating off-the-shelf software applications to meet specific customer
needs. Visual Basic integrates rich development capabilities with host applications. Developers who use
Visual Basic to extend the CorelDRAW 9 Graphics Suite applications can benefit from the familiar Visual
Basic programming language, an integrated Rapid Application Development (RAD) environment, and fast
runtime performance. Developers can also benefit from Microsoft Forms Package and support for ActiveX™ controls to create rich user interfaces, provide easy access to the Windows® API and the
underlying file system, add connectivity to corporate data, and integrate with other Component Object
Model-based software.
0
 

Expert Comment

by:GOLLEM
ID: 2770135
Assistant->

Evan just solved the problem :)

Within VB you can use ADO to create your own database. You can even link the tables from your MS-Access database if I'm not mistaken.

you can write a script for coreldraw that automatically executes when coreldraw is started up. This way the only line you need to add to your database is a CreateObject line. Coreldraw will handle the rest and update your tables.

Here's an outline of what the script should do:

-  check all drives for new images. (check for all supported file-extensions)
-  check the tables to see if an image is new and indicate if an old file was found.
-  if a new image is found a thumb has to be made and a new record has to be appended to the table.
- after the check the images which were not found have to be removed from the table

regards,

          Michiel
0
 
LVL 7

Expert Comment

by:Believer
ID: 2770180
Okay, so how much is CorelDraw vs Thumbs?  How easy to do this in Thumbs?  Does each client need to have either of these apps installed?
I don't have the answers, just questions for assistant to consider...
0
 

Author Comment

by:assistant
ID: 2770475
Let me again say thanks for all of the comments, but...

Ruchi, I don't mind everyone having the apps on their system because I am creating an executable MDE file.

Mgrattan, Thanks again.  I had rather creating thumbnail images than going outside of Access 97 boundries.  However, all that I want to do is list a screen full of thumbnails, I really had rather not create them, so I will check out product to view thumbnails.

Perove, why can you see only six images?  What kind of costs?

EvanL, Thanks for the input.  However, Corel is not the way for me.  There are many other obstacles I would have to conside; compatiability, portability, etc.

Gollem, See Above.  Also linking the images is not a problem.  All I have to do is add indexed key value when I add new image.  p.s. It is interesting, isn't it?

Believer, I am reviewing ThumbsUp now.
0
 
LVL 7

Expert Comment

by:Believer
ID: 2770505
ThumbsUp... LOL!  It's ThumpsPlus... <chuckle>

Cool!
0
 
LVL 7

Expert Comment

by:Believer
ID: 2770509
LOL again!!!! it's not "Thumps"!
T-h-u-m-b-s-P-l-u-s.

BTW: Thanks for taking the time to respond to all of us, by name even!
0
 

Author Comment

by:assistant
ID: 2770897
Sorry About the Mispelling Believer, that is probably one I have checked out also. I got the right one I'm sure though, just clicked on the address in your response.  Be patient with me and we all might get something out of this.

BTW - Thank you, although they may not accept the expert's response as an answer, I believe a reply from an expert is also worth an acknowlegement back from the person asking for their help.
0
 
LVL 14

Expert Comment

by:mgrattan
ID: 2771317
assistant:  OK, so it sounds like you just want a thumbnail viewer in Access 97.  Have you checked out the ActiveX component at  http://www.witzendsoft.com/pr02.htm?  It looks like it might do the job for you, IF it is compatible with Access.  Most ActiveX components will work with Access 97 though, so it might be worth a shot.

One other option is to store the JPGs in an OLE field (as I suggested earlier) using the AppendChunk method in VBA.  There is a good description of the pros and cons of using OLE objects versus reading the JPG files directly at Dev Ashish's excellent Access web site (http://www.mvps.org/access/forms/frm0044.htm).  No matter which option you use for storing your JPG files, you can create a multi-column Access report that, in effect, will look like a thumbnail viewer.  Quick and Dirty method:  Use the Report Wizard to create a Mailing Labels report; in Design View, insert a Picture control above the fields you selected for the mailing labels.  Change the number of columns for the report to a higher number (six, eight, ten, or however many thumbnails you want to view per row).  You change the column numbers in the Page Setup menu when the report is in Design View.
0
 

Expert Comment

by:ranichols
ID: 2771586
Assistant:

I am trying to solve a very similar problem and here is what I know so far.  I will be interested in what you and others find.

I have a bunch of ".bmp" picture files on a CD-ROM.  I want to print them out in a report as thumbnails, like a photo album.

I created a table with a field for the filename, and an "OLE Object" field for the "picture".  I would like to use code to automatically load all the OLE fields in the table using the "filename" field -- but I haven't accomplished that yet.

What I can do is manually load a picture into a row of the table (in the OLE field) as a "linked Paint OLE object".  That way the table doesn't actually contain the bitmap.

Then, on a form or a report, it is simple to place a "bound object frame" which you size to thumbnail size and set the control source to your OLE field.  Then the trick is to set the "size mode" property to "zoom" (or stretch) and Access will scale your picture to thumbnail size for you.

I assume then you will have a button to launch another form to show the full size bitmap.  I haven't done that, but I suspect the trick is to have a big "unbound object frame" on the second form and set the "source doc" property to the name of the bitmap file you are interested in.  Or simply have another bound object frame like the first form, only bigger, and synchronize the record to the record on the first form.

My problem is how to load the OLE fields in the table with links to the picture files with VBA code instead of manually.  I thought I could use "CreateObject" and create a paint.picture class, then initialize to a file, and stuff it in the OLE field, but I can't get it too work so far.

-Randy
0
 

Expert Comment

by:GOLLEM
ID: 2772338
Randy->

Now that's a bit less hard... :)

You can automate this using sendkeys

If you have a table that registers the paths to your pictures and contains an OLE-field, you can make a form with for the table.

Lets say your code first checks for all supported image-files. It has adapted the table accordingly. (see outline above)

Now you set the currrent record to the first new entry. You already have the path to the image-file.

Set the focus to the unbound-object frame and use Cmd.RunCommand InsertObject. If you stop your code here you will see that the dialog for inserting has popped up.

Now you can use SendKeys to fill in the necessary info and save.

You now proceed to the next new entry and handle that one...

I think it's also possible to fill in a new image directly into the table...



Hope this helps :)

regards,

        Michiel
0
 
LVL 9

Expert Comment

by:perove
ID: 2772431
Assistant:

<<Perove, why can you see only six images>>
I choose six as a example on the number of thumbs to View pr page.
(then you will load in six new when you click next page, another six when you click next again...)
It can be 12 or 8 or ... whatever..
But again:
This is not a actual thumbnail, the "whole" picture is still loaded into access so, what you actualy show is a "cropped" version of the image.


<<?  What kind of costs? >>
I don't know, I have bought some ActiveX components to approx $500, you have to check the price yourself.

perove


0
 
LVL 14

Expert Comment

by:mgrattan
ID: 2773829
There are two knowledge base articles you can read to see how images can be read into a form, table, or report--suggest you use one of these methods for your thumbnails project.  I currently use the first method and print 12 photos per report.  Of course, you can scale down the size of your thumbnails by resizing the Picture control (make sure you set the mode to Zoom so it resized the picture appropriately).

1.  How to display images in a form without storing them in a table--
http://support.microsoft.com/support/kb/articles/q148/4/63.asp

2.  How to load OLE objects from a Folder into a Table--
http://support.microsoft.com/support/kb/articles/q158/9/41.asp

3.  Displaying photos in a form.
http://www.mvps.org/access/forms/frm0044.htm

Well, that's it for my comments on this topic--I wish I could participate more but I'm on my way out the door for a two-week vacation.

Hope some of this information is useful to you.
0
 
LVL 7

Expert Comment

by:Believer
ID: 2773969
I think some of you are missing the point...
assistant's post "Monday, May 01 2000 - 05:08PM EST" clearly states that he(?) wants to know how to create miniature images.  Not just re-sized *physically*, but so that the resized image actually takes up a fraction of the memory/disk space (e.g. 50k jpg --> 3k thumbnail).
0
 

Expert Comment

by:GOLLEM
ID: 2774428
believer->

not creating a new image will actually save you disk space...
the image itself has to be available anyway, so creating an extra image will only cost more space.

This way you do have small images, without the need for extra disk-space

regards,

       Michiel
0
 
LVL 7

Expert Comment

by:Believer
ID: 2774606
I see.  Of couse, that's as ling as it's implemented as a *linked* image, not embedded into the DB.
0
How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

 

Expert Comment

by:ranichols
ID: 2775785
mgrattan's references seem to be the most programmatic way to load OLE objects into a table, using a form for leverage.  I would still like to see a way to do it without a form (using DAO, etc.) but maybe that is a weakness in the language at this time.

GOLLEM's sendkeys method should work also, although I generally shy away from sendkeys.

Regarding assistant's original problem, I agree that the solution should be to link to original image files rather than generating new thumbnails (unless performance issues arise).  It seems to me that the "sizemode" property of zoom or stretch to display the linked OLE images answers the scaling problem well.

-RAN
0
 

Author Comment

by:assistant
ID: 2777850

Mgrattan, Ranichols, Gollem, & Believer I appreciate you guys' suggestions.  I loaded ThumbsPlus onto my system.  Let me say, this program does exactly what I want to do myself, and more. However...

First, I had to update my Windows files before it would run.  Next, I started getting errors, which I wasn't getting before.  I don't know if it was related to the program or not.  Finally, I wound up restoring an old backup to correct the problem.

Because I was unable to continue my research, I was unable to determine if it would create a database like I want.  I know it does exactly what I want to do, takes a directory of bitmaps, loads them onto the screen in good quality thumbs (BTW, which are sizeable), then when you click on them they display the actual full size image.  Although the thumbs are presented, they appear virtual, using no hard drive space.

ThumbsPlus appears to be a good program, and it even offers image editing capabilities, which I do not need.  The program cost less than $100, which is acceptable.  However, if I create a database application on CD for other people to run on their systems, and they have to update their systems, or if I have to purchase additional licenses, then it is not what I want.

Again, I don't have to store thumbs, merely display them on the screen for selection of the fullsized image, just as ThumbsPlus does.  I hope this clears the confusion.  Once I get my system completely restored I will continue my research.  Right now I am using my girlfriend's (which is also my wife) computer to answer your responses and answer my email.  Thanks again.
0
 

Expert Comment

by:GOLLEM
ID: 2778013
Assistant->

If you want a program that is flexible you have to fill your tables dynamically similar to how I outlined it above.

You don't store your images into your database if you use linked OLE-fields. Combined with filling your tables dynamically this will result in a utility that does exactly what you described.

It's just up to you to combine the different pieces of the puzzle as they are suggested by everyone here.

this is how far we have gotten till now:

create a table with an OLE-field in it

fill this table dynamically by checking your drive(s) for images and creating a linked image in the OLE field of your table. The filling is best done using mgrattans solution.

display the contents of your OLE-field on a form or report as thumbnails by using the sizemode property as suggested by ranichols.

In the on_click event of a 'thumbnail' you can either resize it or open another form or report that contains the image in full-size.

As you can see the solution is already there....

regards,

        Michiel
0
 
LVL 7

Expert Comment

by:Believer
ID: 2778293
Assistant: Look around in Thumbs... I know I read about (and tried) and option to tell it to create an Access 97 compatible db.  If you don't db is Access 2000.  In either case, after you use thumbs to load some images, open Access and then open the .tdb file created by thumbs and nose around in it... You might find thumbnail images embedded in the tables somewhere!  Then you can write a "normal" access aaplication over the thumbs database.  At least that's my theory anyhow! <grin>
0
 

Expert Comment

by:ranichols
ID: 2778756
I'm suddenly having second thoughts on the use of linked OLE fields to display pictures.

I successfully used mgrattan's references in the Microsoft Knowledge Base to load OLE fields with picture files, using a bound form and record by record loading the OLE fields.  My code is below (wraparound may make it hard to read).

The reference is called "How to Load OLE Objects from a Folder into a Table" (Q158941).

But... when I checked the size of my ".mdb" file, it appears that Access must have actually loaded the bitmaps somewhere in the database, presumably in the table.

As you can see from the code, I tried property constants corresponding to OLELinked and OLEEmbedded.  The strange result was that OLEEmbedded caused an ".mdb" file size smaller (half) of the OLELinked case.  Here are the stats:

Picture (.bmp) file size = 901K

Database (.mdb) with no links set = 1.06 Meg

Database with 6 Embedded OLE set = 5.5 Meg

Database with 6 Linked OLE set = 10.1 Meg

It definitely looks like loading 6 OLE pictures increased the database by either 6 * picture size, or approx 12 * picture size.

------------Load OLE Code-------------

Private Sub cmdSetOle_Click()
Dim sOlepath As String
Dim l As Long

DoCmd.RunCommand acCmdRecordsGoToFirst

l = 0

' ".mdb" size with no OLE pictures loaded = 1.06 meg.

Do While True
    sOlepath = ctlSearchFolder.Value & "\" & ctlFilename.Value ' example: i:\pic1.bmp
    ctlPicture.Class = ctlOleClass.Value ' This is set to Paint.Picture
'    ctlPicture.OLETypeAllowed = acOLELinked ' This causes ".mdb" = 10.1 meg
    ctlPicture.OLETypeAllowed = acOLEEmbedded ' This causes ".mdb" = 5.5 meg
    ctlPicture.SourceDoc = sOlepath
'    ctlPicture.Action = acOLECreateLink
    ctlPicture.Action = acOLECreateEmbed
    l = l + 1
   
    If l > 5 Then Exit Do ' This loop loads 6 OLE "pictures", each bitmap .901 meg.
   

    DoCmd.RunCommand acCmdRecordsGoToNext
Loop

End Sub
--------------------------------------

So, I tried another approach, which was another of the mgrattan references called "How to Display Image in Form Without Storing it in Table" (Q148463).

Instead of a form, I made a report based on a table holding the filenames of the bitmaps, but the technique is basically the same.  I used a label layout so it looks like a stamp album.

I placed the filename field on the report, but you probably don't need to.

I used the menu choice Insert | Picture, and when prompted, chose one of my pictures.  I also set the "SizeMode" property to "Zoom".

Then the trick is to go to the detail band, right click and select "Build Event"  then "Code".

Enter the code below:

------------------- Code------------
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
ctlPicture.Picture = "i:\" & [Filename]
End Sub
-------------------------------------

where "Filename" is the name of your table field holding the picture filename.  "i:\" is my CD-ROM drive.


This report did indeed show thumbnails of all my pictures, although it looked like it may have been 8 bit color.  But the technique did not increase the size of the ".mdb".

The same basic technique is used for forms, only you can use the "AfterUpdate" event to set the ".Picture" property of the ImageFrame.  See the knowledge base article (Q148463).

If the form "Default View" property is set to "Continuous Forms", then you chould be able to show a vertical line of thumbnails - not as good as a matrix, but still useful.

As for launching a second form with the large size image, that is fairly straightforward.

I will play some more with these techniques, but the thumbnail report works well and is also in matrix layout, since is a label layout.

-Randy
0
 

Expert Comment

by:ranichols
ID: 2778821
I think I was mistaken in my last post.  What worked for reports does not seem to work for forms (using continuous forms to show multiple thumbnails at once).  The knowledgebase article was probably for single forms, and Access may have a problem showing different pictures for the same object in different records when you use continuous forms.  I believe other products such as Paradox for Windows can do it.

It does work in reports, however.

-Randy
0
 

Expert Comment

by:GOLLEM
ID: 2779183
Randy->

Use a variable to indicate the recordnumber for the first thumbnail.

you can then loop through you recordset and fill multiple OLE-object-controls on a form (if you want to display ten thumbs, then the form should have ten controls)

if the user asks for the next page, then the variable (integer) is incremented by ten and the function which fills the OLE- object-controls is repeated.

So it is possible in forms....

Regards,

         Michiel
0
 

Author Comment

by:assistant
ID: 2780415
Wow, thanks for all the responses guys.  I know some of you have, and still are, working hard to help me solve this problem.  I am looking at all of the possibilities, but I am s l o w when it comes to understanding and testing your suggestions, so please be patient with me for the point awards.

I am working steady on the resolution and read your emails several times a day.  If I don't post comments right away I hope you understand why.  I want to test before I comment.  Thanks again.
0
 
LVL 7

Expert Comment

by:Believer
ID: 2780454
Curious... where are you at with this?  Did you try letting Thumbs create the Access database, etc. per my post "Thursday, May 04 2000 - 02:11PM EST"?
0
 

Author Comment

by:assistant
ID: 2780716


Believer, I have been working to rebuild my system and testing other suggestions.  I was only able to work on it now and then yesterday, so didn't get allot done.

There is an option to create a database in Thumbs, but haven't had a chance to try it yet.  I will try it after I finish this short, I hope, project I am working on.
0
 

Expert Comment

by:ranichols
ID: 2786202
I'll give some final thoughts on using Access to view thumbnails, and zoom on a particular one.

I think the approach I would take (for forms - reports seem to work differently), would be to place say 12 "image objects" on a form.

I would then allow the user to specify a folder containing ".bmp" bitmap files (or have the folder name in a separate table if it doesn't change often).

I would then use code to load a table (or array, whatever is convenient) with the file names.

Then there should be some navigation buttons on the form to get next, previous, first, last page of thumbnails.  You would use code to move a "pointer" (record or array index) to the next appropriate place in your table/array.  You would then assign the next 12 filenames to the image.picture properties of your 12 image objects on your form, (whose "size mode" property is set to zoom).  Those are the thumbnails.

To zoom in on a thumbnail, the user would click on a particular image object.  You trap the "onclick" event, and open a new form which has a single big image object.  You assign the selected filename to its ".picture" property.

I have found from my own tests that Access97 does not do an efficient job of managing memory with bitmaps, and you may hit "insufficient memory" problems in certain cases.  

For instance, my label layout report showing 50 thumbnails per page would not display under Win98 with 128 meg of RAM.  It would display under WinNT with only 56 meg of ram (and a lot of virtual memory), but the last row of bitmaps were not completely filled in.  My HP IIIP printer would only print out the first couple of rows of the report.  Access97 and Windows may be moving full bitmaps around, and expecting the printer to do the final scaling to thumbnail.  Similar with the report preview.

Therefore, even though Access97 can theoretically do what you want, a third party utility or OCX may be the practical answer.

-RAN
0
 

Expert Comment

by:GOLLEM
ID: 2787974
Randy->

Good point! Didn't think about the memory problem yet....

In my opinion this can be achieved through API-calls. There has to be functionality that can copy part of the screen onto the clipboard. After all the Print Scrn button on your keyboard does this for the entire screen, so a part of the screen should also be possible.

If so, you can first display the entire image in an OLE-Bound control, copy the resized image to the clipboard and paste it back into the control. That takes care of the memory-problem.

I'm not an expert in API myself, but I'm sure this should not be so hard to achieve. I think the only bottleneck will be in determining where the resized bitmap is located on the screen.

Maybe someone with more experience in API-programming could shed some light on this???

Regards,

          Michiel

0
 

Author Comment

by:assistant
ID: 2792179
Thanks Ran and Michiel for the input.  I have been busy working on my system.  I am finally having to replace my hard drive, which should arrive today.  So I haven't been working on the Access 97 application much.

I have setup a temporary hard drive so I can continue testing until my other one gets here.  Western Digital has great products and has a great technical support branch.  I wish every company did.

No, I do not own stock in their company.  I just believe companies, as well as individuals, should be recognized for their efforts.  BTW, you guys have been great also.

I want to resolve this issue ASAP and hope to complete my research by Friday.
0
 
LVL 7

Expert Comment

by:Believer
ID: 2811735
Assistant: I know you've had a lot more important stuff going on, but I'm interested to know if there's any news here... thanks!
0
 

Expert Comment

by:GOLLEM
ID: 2812099
Believer->

As soon as someone produces those API-calls the problem is completely  solved....
That's how far we've gotten till now.
We'll just have to wait for Assistant to react now I guess

regards,

          Michiel
0
 

Author Comment

by:assistant
ID: 2812171
Believer, There is nothing more important to me than gettting this application built.  

I finally got my system back up and running and found out you can produce an Access 97 application using ThumbsPlus.  I have tried to look at the code, as you suggested, but I am unable to figure it out, due to my lack of Access 97 expertise.  I am also unsure of the cost.  

I am waiting on an email back from ThumbsPlus.  I am also waiting for an email back from witzendsoft about their ActiveX component.

michiel,  I am not sure how to handle API calls so I will probably go with either ThumbsPlus (depending on cost), or the ActiveX component (if I can use it in Access 97.  I sure hope one to resolve this soon.  As I stated before, this is only part one.

 
0
 

Expert Comment

by:GOLLEM
ID: 2812602
Assistant->

Be sure to check out royalties and that kind of stuff. Otherwise it could become quite costly.

Even if you don't use the code, it's still a usefull exercise for the experts here to solve the problem. Also when other people look at the <PAQ> then they will see multiple solutions and will be able to choosee the one that suits their needs most.

regards,

         Michiel
0
 

Author Comment

by:assistant
ID: 2813728
Michiel, I did get an email back from ThumbsPlus saying that they have a package that will do exactly what I want to do but they didn't quote me the cost.  I sent them another email for a price quote.

I do agree with your thoughts, for everyone to be able to choose the best solution to meet their needs.  I think EE provides a learning tool for both users with questions and the experts.
0
 
LVL 7

Expert Comment

by:Believer
ID: 2814187
assistant: I downloaded the Thumbs 4.0 help manual in pdf format (ftp://ftp.cerious.com/pub/cerious/guide40.pdf) and found a reference to using DDE with Thumbs, including a downloadable mdb and/or viewable source code (http://www.cerious.com/manual/faq.html#PCQ_dde).  I don't know much about DDE (okay, I don't know *anything* <grin>) but maybe this will help some...
I'm also surprised you haven't heard back from Thumbs/CeriousSoftware in a timely manner; they were pretty quick to reply to me via e-mail with a technical question (1 day).
Since I have Thumbs installed at home (as well as a fast internet connection), tonight I expect to be looking into the Access97 database thumbs generates in an effort to help you with your solution... sit tight!

Oh, good luck with the ActiveX thingy, too!
0
 

Author Comment

by:assistant
ID: 2817319
Believer, Thanks for your efforts.  I received an email back from ThumbsPlus.  It was dated yesterday morning.  I guess my Pony Express service provider was having trouble with Indians.

Anyway, I ask for cornfirmation of cost before I order.  I will be ordering it today once I am sure no other hidden costs are involved.

The ActiveX IS NOT an option any more.  Support means a lot to me and that company seem to be lacking in that area.

I don't know anything about DDE either, and very little about Access 97.  But hopefully with your help, I can get this to work under ThumbsPlus with Access 97.  I am (sitting tight) awaiting your response.
0
 
LVL 7

Expert Comment

by:Believer
ID: 2817434
Okay, I fiddled with it last night.  (As it turns out, I have a client that wants to do almost exqactly the same thing!)  Bad news.  The A97 database table with the thumbnails in it has an OLE field for storing the thumbnails.  When I drop the field on a form, I don't get anything.  I couldn't figure out what the OLE object may need, either.  It's possible that Thumbs tech support could help in this area and I plan to query them sometime soon.
I also downloaded the sample DDE code and sample mdb.  The mdb was useless, all it has is a query to extract images' keywords and put them on a report.  
I think I learned a little about DDE, too.  It appears that, in this case anyway, DDE can only be used to manipulate Thumbs from Access.  For example, you can open Thumbs, then, from Access, you can tell Thumbs to do stuff via the DDE commands.  The user might see Thumbs doing a bunch of stuff on the screen as though a ghost were controlling the program.

I don't consider this a dead end, just another road block!  Since I now have a client who needs the functionality you are looking for I have become even more interested in a viable solution.  Please keep me posted on any progress you make as well as info from Thumbs tech support.  If they e-mail you, maybe you could forward me copies of your conversations with them.  As I said, I also expect be asking them some questions in this area.  My time frame just isn't as tight as yours, though, and I have a lot of other work to do in the mean time!

0
 

Author Comment

by:assistant
ID: 2817725
Believer, Talked to ThumbsPlus and they said I could use an Application that comes on the CD version.

My Message - I have Microsoft Office 97 Developers Edition with Windows 95.  I am wanting to create an Access 97 application that will display thumbnails and images, like ThumbsPlus does, on a CD for our reunion and family pictures.  I want to make approximately fifty copies.  I want them to be able to view thumbnails of the pictures or movie files on the CD, then click on them to see the full size image or to show the movie.  There is no need for them to edit the pictures or change the CD in any way.  Nor do they need to have any other options than the ones I mentioned.  These are not going to be sold but given to the family.  Can ThumbsPlus be used to accomplish this?

Reply - If you purchase ThumbsPlus on CD there is a Personal CD Developers Kit included.  It is designed and licensed to do exactly what you are describing. I was told they also have a Developer's Kit for commerical use, which I plan to purchase also.
0
 

Author Comment

by:assistant
ID: 2828988
Believer, I just wanted to give you an update.  I received my package from ThumbsPlus this morning but haven't loaded it yet.  I am anxious to find out its' capabilities/limitations.  I hope to know something in a couple of days.
0
 
LVL 7

Expert Comment

by:Believer
ID: 2829431
I am waiting with baited breath... seriously!  Thx for the update.
0
 

Author Comment

by:assistant
ID: 2842875
Comment accepted as answer
0
 

Author Comment

by:assistant
ID: 2842876
Believer, I am sorry it has taken me so long to get back to you.  I am S L O W.  Although I still haven't completely worked out the complete details, I believe ThumbsPlus will let me accomplish my task.  Therefore, I am awarding you the points.  Good luck with your Access endeavors.

Thanks everyone for all of the input.
0
 
LVL 7

Expert Comment

by:Believer
ID: 2847679
Thanx for the points and the wishes, but I ain't done with you yet!
I have at least two clients that I have projects for and am *very* interested in how well Thumbs works for you and how you accomplish it.  Will even pay significant points for any useful insights you can give!  
PLEASE drop me a line at believerdw@excite.com so I can stay in touch...!
0

Featured Post

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Join & Write a Comment

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
Today's users almost expect this to happen in all search boxes. After all, if their favourite search engine juggles with tens of thousand keywords while they type, and suggests matching phrases on the fly, why shouldn't they expect the same from you…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now