Modules & VBA :: How To Hide Mapped Drive With Code
Nov 3, 2014
So I do map drive on this way and it is successful ...
Code:
Dim FSO As Object
Dim objFile As Object
Dim objFileS As Object
Dim WshNet As Object
persistent = false
set objNetwork = CreateObject("WScript.Network")
But I need to have mapped drive hidden from the client users So I red that i might be possible if put $ after the share folder
Code:
objNetwork.MapNetworkDrive "driveletter:", "serversharename$", persistent, "username", "password
"
but it does not work.. the other way is to set values in win registry, but I don't like that way...
My workaround was to temporarily map the URL to a vacant drive letter on the local machine, then copy the file over, then drop the mapped drive again. A bit clunky but doesn't incorporate much of a delay and this download only has to happen once per day.
The good news is, the file download / copy now works every time. The bad news is that removing the temporarily mapped drive after the copy has taken place, doesn't and I can't figure out why.
Here are the functions I use to map / unmap the drive :
Code:
Option Compare Database Option Explicit
Private Const RESOURCETYPE_ANY = &H0& Private Const CONNECT_UPDATE_PROFILE = &H1& Private Const RESOURCE_CONNECTED As Long = &H1&
[Code] .....
I have separate functions to check existing drive mappings on the local machine and thus determine an appropriate vacant letter to use for the temporary mapping - they work fine.
Unfortunately the UnMapDrive function returns False (even though I switch the active drive to C: and force the connection to be cancelled with the fForce flag) So the mapping always remains on the users profile.
I don't want to permanently map drives on the users' profiles, just briefly for the purposes of this daily file download.
I have my database connected to a network of ten computers. I recently switched my linked tables from a Mapped Network Drive to using the actual UNC path \computerfolderdatabase.mdb
My users have started to notice it takes longer for the database to connect in order to log in. Once they have established the connection, the data transfer speed seems to be normal.
Is this to be expected? Any suggestions to speed things up for login? Or is this the downside to using UNC?
As the thread title suggests, my problem is that I have a database that will not open via the mapped drive. There are other databases stored on this drive that open fine so it is only the one database that is causing me a headache.
Any suggestions as to why only this one database would be having this problem and any ideas on how to resolve it would be greatly appricated.
I have a front-end and back-end database. Front end is at //fserv/database back end is at //fserv/database/administration
I have sent front end path to users and they can bookmark it to find front-end. When I linked to the backend in the administration folder I had the path mapped to drive T:
Problem is the users do not have this same mapping to drive T: They may have other paths already mapped to that drive.
The users are getting the message:"t: est.mdb is not a valid path. Make sure the path name is spelled correctly and that you are connected to the server on which the file resides."
Is there anyway to link the the backend tables using just a path like: //fserv/database/administration
I am attempting to link a table in one database to another database using the server name designation (ie.//2sxfprinff01Group) instead of the mapped network name (ie. G:). I tried relinking using the Access Link Manager. Right click on the linked table. But it does not let you edit the link.
Access 2007 does not allow this and reverts links to the G: drive. There are situations where the the IT department have set the mappings to this shared location as an H: for some of the employees. In those cases, the employee gets an error message telling them that Access cannot locate the G: drive.
An obvious solution is to get the employees remapped to the G: drive. However, one would think that MS would have allowed for mapping to the designated location and not an alias.
I've inherited a few Access DB monstrosities. One of which had ODBC credentials hard coded in the MDE which I had to recently update due to some server updates. I found an unsplit version of the Access DB on a development drive (j:db...) and updated the credentials hard coded in VB and updated the linked tables from the J drive path (dev) to the K drive path (prod). I then split the DB and the MDE worked fine for me. I quickly found out that it only works fine because I had J mapped still. End users do not have the J drive mapped (development) only the K (production). Without the J drive mapped to the actual dev path the Access DB simply doesn't load. No errors.
I then tried to find any references to J in VB and fix those. At this point I can't seem to find anything else that could be referencing the J drive but still the DB will not open without J mapped.
I need to make sure that all users on the network can access a specific network drive folder.
Most users don't have a problem but some users have the network drive mapped differently so when running the feature required their system can't find the file at that specified location.
I have the location of the files hard wired into the VBA code.
E.g. Z:INVDATACOMPANIESCompanyAASSETS Pty LtdPrecedents 2015STAGE 3A - COLLS-DEMS
The location is outside of the project address.
I need to be able to make sure the address of the folder is the same for all users.
I woul like to programatically (with VBA code) hide and unhide the database window.
In Access 97, this can be done with Tools > Startup > Display database window box (check/uncheck).
But I would like my program does that himself : when the user launches the application, the database window should be hidden and when he leaves, the database window should be shown again.
I have a form displaying records. I would like the user to be able to select a button, browse for a file on a shared drive and link it to that record.
I have been exploring hyperlinking, which works for the most part, although I need it to display the share name rather than the drive assignment for that user. Such as drive1folder rather than C:folder.
Hyperlinking also unfortunatly requires the user to right click on a field select edit hyperlink then browse.
I have a report that displays maybe about 4 columns that read data and if a columns reads zero then I have a code where it will hide, but my problem is that I cannot get the columns to move over once the column that is zero is invisible.VBA code that will hide a column that has zeros and move over the remaining columns so that when the report is ran it will not show just an empty white space.
There seems to be some inconsistency in controlling the ribbons in Access 2013.I have managed to use the USysRibbons custom table and XLM to hide the ribbon in one app, but when I set the same config up in another db's the ribbon wont hide.
I've then made an empty db and tried in this and it still wont hide.What are the "current db" setting that must be set to make the ribbon hide?
I would like to have 3 buttons on a form. When clicking Button1, Button2 and Button3 should be shown and Button1 hidden. When clicking Button3, Button2 and Button3 should be hidden and Button1 shown.
How can I do this when it is not possible to manage the object being clicked? I tried the following which did not work because of managing an object clicked is not allowed.
I have a form that has a drop down box with all of my project numbers in it. when I choose a project number, I can then choose from several report buttons on that same page that opens a report just showing that projects info (easy enough). I then have different report buttons that open those same reports, but showing every project (no filter).
The reports have a cover page that has the field, 'project number' in the front, so when a particular project is chosen from the drop down, that project number will show on the cover page (still pretty easy).
My question is, when I open the full report(no filter), is there a way to tell the report not to show the 'project number' field? since the full reports show every project, the 'project number' field will show the first project number, which is not what I want to do.
I use DoCmd.ShowToolbar "Ribbon" acToolbarNo (or acToolbarYes) depending on a value in a table which I have shown certain "trusted" users how to change.
But is it possible to do something similar with the Navigation Pane?
I have a report in which I'm trying to hide some elements from view in case a specific value is Null. Access seems to do this automatically if the report is in print-preview-mode, but not in normal view-report-mode.
I've tried something like this, but it's not really working:
Code: private sub report_load() if nz(txtfield, 0) = 0 then txtfield.visible = false end if end sub
I have code that I want to cycle through several fields and check instead of coding for each individual field. I thought this might worked on an earlier project but Im lost. When I try to add my code in the "If MyControls Then", I want it to hide the field on a report if it is blank. It doesnt allow me to do MyControls.Visible.
Code: If Len(Reports!RecallReport!QAW1 & vbnullsting) = 0 Then Reports!RecallReport!QAW1.Visible = False End If
but I want the below code to go through each field With QAW in it and hide it if it is blank.Or having it go through each field individual. There are 10 Fields With QAW THen there are another 10 fiels with ShipDist. I would prefer a simple solution to check all at once.
Code: Dim MyControls As Control For Each MyControls In Me.Controls ' Iterate through each element. If InStr(1, MyControls.Name, "QAW") Then If MyControls Then End If End If Next
I don't even know if I am on the right track or what.
I need to hide my subform on load or open of the main form but am experiencing some weird results. I have tried putting Me.SubForm.Form.Visible = False in both the on open and the on load of the main form and it works only if the tables on which the subform have records in them. If the tables for the subforms are empty I get an error 2467 telling me that "The expression you entered refers to an object that is closed or doesn't exist." I find this strange because from all I can find the subform loads first.
How can I hide the subform when the main form opens no matter what records exist or don't?
I am working on a database. I created a list box (ListBox) that filters record for a form. This list box is controlled by another field (SearchBox) where I type search string.
The ListBox visibility is hidden when the form loads. It only becomes visible when the user starts to type in the SearchBox. The records gets filtered and when the user clicks on the selection, the form goes to the record and the ListBox becomes hidden again. All this works fine. My problem is for some technical reasons I want the ListBox to show only when there is character in the the SearchBox. When I try to type in the SearchBox the ListBox shows but when I try to clear the SearchBox with backspace the ListBox is still visible
I tried:
Code: If me.SearchBox = Null Then me.ListBox.Visible = False Else me.ListBox.Visible = True
I also tried
Code: If IsNull (SearchBox) Then
Still when I type backspace the ListBox remains visible.
EDIT: I forgot to mention that I put this code on the current event of the SearchBox Field.
I would like to disable the Navigation Pane completely, based on the security level of the user that logs in, of course.
I have code that checks their level (I'm an "Admin" and everyone else is a "User"). If they are a user, then it hides the ribbon and minimizes the nav pane. If the login is mine, it enables everything.
That works, but the only problem is that the user can just maximize the Nav Pane on their own and access all the tables, and I don't want that. I can't find any code that completely disables the pane.
I have this code connected to my login button on my login form:
Code:
If Security = "User" Then DoCmd.ShowToolbar "Ribbon", acToolbarNo DoCmd.NavigateTo "acNavigationCategoryObjectType" DoCmd.Minimize Else DoCmd.ShowToolbar "Ribbon", acToolbarYes DoCmd.NavigateTo "acNavigationCategoryObjectType" DoCmd.Maximize End If
I can go to the options menu and disable the nav pane completely, so I know since only I have access to the ribbon, I could always go in each time and recheck the display nav pane option on that menu. But, that could be a little bit of a pain having to do that each time.
Also, I know I could finish the design and convert the DB to an MDE, but since my DB isn't broken up into a front/back end, I have to access that same DB everyone else uses, and if any changes need to be made, I don't want to have to use my backup, transfer over the changes any user made to the records, and then reconvert it back to an MDE each time.
If it's possible, I'd like to do all this using VBA. If they aren't an ADMIN user, then disable everything for them, but if I login, enable everything for me.
I'm wondering if it is possible to create a module to hide the navigation pane and document tabs? I know this is possible via the Access Current Database options however I'd prefer this to be done via an Auto Exec that runs the sub. (i already have it for the ribbon)...
I have this code that works. I have a form with 3 tabs. When I select the middle tab I am prompted for password but if I click the 3rd tab I am not.
Code: Private Sub TabCtl9_Change() Dim strInput As String Dim ctl As Control ' Hide controls on tab until correct password is entered For Each ctl In Controls