Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Программно таблицу создать
 
 автор: час   (16.08.2009 в 19:20)   личное сообщение
 
 

Создаю запросом таблицу из другой таблицы , а поле которое было индексировано и значения не должны повториться - становится обычным


' создаём GROUP_TREEVIEW_TBL из G_T_V_EYALON

GLB_con.Execute "SELECT G_T_V_EYALON.KEY, G_T_V_EYALON.ID_GROUP, G_T_V_EYALON.GROUP_PARENT INTO GROUP_TREEVIEW_TBL
FROM G_T_V_EYALON
WITH OWNERACCESS OPTION;


Как изменить запрос???

  Ответить  
 
 автор: час   (16.08.2009 в 20:37)   личное сообщение
 
 

перефразирую вопрос



Set adoxCol = New ADOX.Column
With adoxCol
.ParentCatalog = adoxCat
.Name = "ID_GROUP"
.Type = adInteger 'тип поля
'условие на значение
.Properties("Jet OLEDB:Column Validation Rule").Value = "<>'' and not is null"
'сообщение о нарушении условия на значение
.Properties("Jet OLEDB:Column Validation Text").Value = "Идентификатор группы?"


End With
.Columns.Append adoxCol, adInteger




как сюда добавить параметр .Unique

  Ответить  
 
 автор: час   (16.08.2009 в 20:55)   личное сообщение
 
 

или сюда куда то

Dim idx As New ADOX.Index


' Зададим параметры индекса
idx.Name = "Index1"

idx.Columns.Append "ID_GROUP"

' Добавляем индекс в коллекцию
adoxTbl.Indexes.Append idx

  Ответить  
 
 автор: час   (16.08.2009 в 20:58)   личное сообщение
 
 





idx.Unique = True




Dim idx As New ADOX.Index

Dim idx As New ADOX.Index

 ' Зададим параметры индекса
   idx.Name = "Index1"
   idx.Unique = True
   idx.Columns.Append "ID_GROUP"
   
   ' Добавляем индекс в коллекцию
   adoxTbl.Indexes.Append idx

  Ответить  
 
 автор: ShadowOfSun   (16.08.2009 в 21:02)   личное сообщение
 
 

Ну примерно так

dim idx as ADOX.Index

set idx = New ADOX.Index
idx.Name = "NameIndex"
idx.Unique = True
idx.Columns.Append "UserName"
tbl.Indexes.Append idx



  Ответить  
 
 автор: час   (16.08.2009 в 21:15)   личное сообщение
 
 

  Ответить  
 
 автор: час   (16.08.2009 в 21:16)   личное сообщение
 
 

теперь другой проблемм

как засунуть необязательное поле
.[quote]
Properties("Required").Value = False
[/quote

и это тоже
Свойство Пустые строки (AllowZeroLength) определяет, допускается ли ввод в поле ]

  Ответить  
 
 автор: ShadowOfSun   (16.08.2009 в 22:12)   личное сообщение
 
 


Response = MsgBox("Allow 'Null' index? Otherwise ignore 'Null' index.", vbYesNo)
    '"Allow 'Null' index? Otherwise ignore 'Null' index."
    ', vbYesNo + vbCritical + vbDefaultButton2,,,,
    If Response = vbYes Then   ' User chose Yes.
       idxNew.IndexNulls = adIndexNullsAllow
    Else   ' User chose No.
       idxNew.IndexNulls = adIndexNullsIgnore
    End If
    


Похоже выдрал из хелпа что то нужное

  Ответить  
 
 автор: час   (17.08.2009 в 10:25)   личное сообщение
 
 

Спасибо!!!!

  Ответить  
 
 автор: час   (17.08.2009 в 10:25)   личное сообщение
 
 

Простите -
А что это такое????

  Ответить  
 
 автор: час   (17.08.2009 в 10:25)   личное сообщение
 
 



Видимо вот так??
     idx.Name = "Index2"
   idx.IndexNulls = adIndexNullsIgnore
   idx.Columns.Append "ID_SHEMS"
   ' Добавляем индекс в коллекцию
   adoxTbl.Indexes.Append idx

  Ответить  
 
 автор: час   (17.08.2009 в 10:55)   личное сообщение
 
 

Видимо немного не то

Нужно свойство AllowZeroLength задать
или Required Обязательное поле = false

  Ответить  
 
 автор: ShadowOfSun   (17.08.2009 в 11:05)   личное сообщение
 
 

Сударь, а вам не приходило в голову в строке поиска VBA ввести свой вопрос?

Sub AllowZeroLengthX()

   Dim dbsNorthwind As Database
   Dim tdfEmployees As TableDef
   Dim fldTemp As Field
   Dim rstEmployees As Recordset
   Dim strMessage As String
   Dim strInput As String

   Set dbsNorthwind = OpenDatabase("Northwind.mdb")
   Set tdfEmployees = dbsNorthwind.TableDefs("Employees")
   ' Create a new Field object and append it to the Fields 
   ' collection of the Employees table.
   Set fldTemp = tdfEmployees.CreateField("FaxPhone", _
      dbText, 24)
   fldTemp.AllowZeroLength = True
   tdfEmployees.Fields.Append fldTemp

   Set rstEmployees = _
      dbsNorthwind.OpenRecordset("Employees")

   With rstEmployees
      ' Get user input.
      .Edit
      strMessage = "Enter fax number for " & _
         !FirstName & " " & !LastName & "." & vbCr & _
         "[? - unknown, X - has no fax]"
      strInput = UCase(InputBox(strMessage))
      If strInput <> "" Then
         Select Case strInput
            Case "?"
               !FaxPhone = Null
            Case "X"
               !FaxPhone = ""
            Case Else
               !FaxPhone = strInput
         End Select

         .Update

         ' Print report.
         Debug.Print "Name - Fax number"
         Debug.Print !FirstName & " " & !LastName & " - ";

         If IsNull(!FaxPhone) Then
            Debug.Print "[Unknown]"
         Else
            If !FaxPhone = "" Then
               Debug.Print "[Has no fax]"
            Else
               Debug.Print !FaxPhone
            End If
         End If

      Else
         .CancelUpdate
      End If

      .Close
   End With

   ' Delete new field because this is a demonstration.
   tdfEmployees.Fields.Delete fldTemp.Name
   dbsNorthwind.Close

End Sub

  Ответить  
 
 автор: час   (17.08.2009 в 11:32)   личное сообщение
 
 

НЕЕЕт не приходило
Я вот тута был
http://azbukavb.narod.ru/dbdoc/CreateDB3.html

  Ответить  
 
 автор: час   (17.08.2009 в 11:37)   личное сообщение
 
 

Я так и пытаюсь, но ничё не выходит




Set adoxCol = New ADOX.Column
With adoxCol
.ParentCatalog = AdoxCat
.Name = "ID_SHEMS"
.Type = adVarWChar '&#242;&#232;&#239; &#239;&#238;&#235;&#255;
.DefinedSize = 100
.Properties("Required").Value = False
.Properties("AllowZeroLength").Value = False

End With
.Columns.Append adoxCol, adVarWChar

  Ответить  
 
 автор: час   (17.08.2009 в 12:01)   личное сообщение
 
 

Конечно победа за нами, но какая хрень





' &#239;&#238;&#235;&#229; "ID_DISCONT"
Set adoxCol = New ADOX.Column
With adoxCol
.ParentCatalog = AdoxCat
.Name = "ID_DISCONT"
.Type = adVarWChar '&#242;&#232;&#239; &#239;&#238;&#235;&#255;
.DefinedSize = 100
.Properties(13).Value = False
End With
.Columns.Append adoxCol, adVarWChar

  Ответить  
 
 автор: ShadowOfSun   (17.08.2009 в 12:16)   личное сообщение
 
 


'поле "ID_DISCONT"
Set adoxCol = New ADOX.Column
With adoxCol
.ParentCatalog = AdoxCat
.Name = "ID_DISCONT"
.Type = adVarWChar 'тип поля
.DefinedSize = 100
.Properties(13).Value = False
End With
.Columns.Append adoxCol, adVarWChar


Похвастайся, как ты умудряешься так зашифровать русский текст
Может тебе раскодировщик выслать, что бы форум не пугать?

  Ответить  
 
 автор: час   (17.08.2009 в 13:17)   личное сообщение
 
 


Похвастайся, как ты умудряешься так зашифровать русский текст
Может тебе раскодировщик выслать, что бы форум не пугать?



При копировании текста с английсой раскладкой клавы происходят такие метаморфозы

  Ответить  
 
 автор: Анатолий (Киев)   (17.08.2009 в 12:41)   личное сообщение
 
 

Св-во №13 называется "Jet OLEDB:Allow Zero Length". Неужели трудно было выполнить
Debug.Print .Properties(13).Name

А разве это св-во по умолчанию не False?

  Ответить  
 
 автор: Denis V.   (17.08.2009 в 12:50)   личное сообщение
 
 


Debug.Print .Properties(13).Name


Вот-вот. Я в своё время это уже проделывал, даже статью написал http://am.rusimport.ru/MSAccess/topic.aspx?ID=642

  Ответить  
 
 автор: час   (17.08.2009 в 13:18)   личное сообщение
 
 

Вот и статья подоспела!!!!!!!
Спасибо!!!!!!!

  Ответить  
 
 автор: час   (17.08.2009 в 13:15)   личное сообщение
 
 

Св-во №13 называется "Jet OLEDB:Allow Zero Length". Неужели трудно было выполнить 
Debug.Print .Properties(13).Name 


не трудно, но когда пишу словами он не находит данного свойства , а по индексу пожалыста

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList